簡體   English   中英

正則表達式以獲取公式的匯總

[英]Regular Expression to get aggregates of a formula

由於某些計算原因,我必須分解一個公式的匯總。 對於聚合,我的意思是“ SUM”,“ AVG”,“ COUNT” ...

該公式在方括號之間有不同的數據。 可能是這樣的:

([D23] +  SUM([D24]) + [D25]) + AVG([D28])[D47][D80] - [D75]

如您所見,聚合的格式為“ AGREGATE([DATA])”。 這些聚合可以是SUM,AVG,COUNT,MAX,MIN ...我的目標是得到一個正則表達式,使用該公式可以得到以下輸出:

SUM([D24]) //One match
AVG([D28]) //Another match

我需要匹配聚合及其引用的數據。 也許這是一個容易找到的模式,但是我是RegEx的新手,但我一直找不到。 我已經嘗試了一些方法,最接近的就是這種模式:

(SUM|AVG|COUNT|MAX|MIN)(\([^)(]*\))

就比賽而言,這確實符合我的要求(看起來比賽是正確的),但是它捕獲了兩個小組的比賽,例如

SUM //One group
([D24]) //Another group

但是,出於我的目的,我需要將所有內容都歸為一組。 任何提示,將不勝感激。

謝謝。

將其設置為非捕獲組,這樣就不會捕獲任何內容。

(?:SUM|AVG|COUNT|MAX|MIN)(?:\([^)(]*\))

DEMO

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM