Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取公式集合的正则表达式_C#_Regex - Fatal编程技术网

C# 获取公式集合的正则表达式

C# 获取公式集合的正则表达式,c#,regex,C#,Regex,出于某些计算原因,我必须分解公式的集合。对于聚合,我指的是“总和”、“平均值”、“计数” 公式中括号之间有不同的数据。可能是这样的: ([D23] + SUM([D24]) + [D25]) + AVG([D28])[D47][D80] - [D75] 如您所见,聚合的格式是“AGREGATE([DATA])”。这些集合可以是总和、平均值、计数、最大值、最小值。。。我的目标是得到一个正则表达式,通过这个公式,可以得到以下输出: SUM([D24]) //One match AVG([D28]

出于某些计算原因,我必须分解公式的集合。对于聚合,我指的是“总和”、“平均值”、“计数”

公式中括号之间有不同的数据。可能是这样的:

([D23] +  SUM([D24]) + [D25]) + AVG([D28])[D47][D80] - [D75]
如您所见,聚合的格式是“AGREGATE([DATA])”。这些集合可以是总和、平均值、计数、最大值、最小值。。。我的目标是得到一个正则表达式,通过这个公式,可以得到以下输出:

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)(?:\([^)(]*\))

谢谢!我不知道非抓捕组。有了这些,我得到了我想要实现的东西,比如
(?:SUM | AVG | COUNT | MAX | MIN | PRI | ULT)(?:\(\[D[0-9]+\]\)
,这样我就可以在一个组中捕获所有这些。标记为答案。