gpt4 book ai didi

c# - 正则表达式捕获组

转载 作者:行者123 更新时间:2023-11-30 15:52:39 26 4
gpt4 key购买 nike

使用以下正则表达式:

InitValue\((\w*)\)

和测试字符串:

InitValue(Input1)

我得到以下结果:

Full match: InitValue(Input1)
Group1: Input1

使用以下正则表达式:

InitValue\((\w*)\s*,\s*(\w*)\)

和测试字符串:

InitValue(Input1, Input2)

我得到:

Full match: InitValue(Input1, Input2)
Group1: Input1
Group2: Input2

现在我想为 InitValue 方法捕获任意数量的参数。 InitValue 的参数数量未知。

Full match: InitValue(Input1, Input2, ..., Inputn)
Group1: Input1
Group2: Input2
....
Groupn: Inputn

当然我不能在正则表达式中重复以下模式,因为我事先不知道参数的数量:

\s*,\s*(\w*)

如何编写输出 n 个捕获组的正则表达式?

我在 C# 代码中使用正则表达式 (Regex, Match)...

最佳答案

可以在 .NET 中执行此操作 - 您使用单个捕获 Group , 然后您访问集团的 Captures collection 以查看它捕获的所有项目,而不仅仅是最终的 Value .

你必须编写一个可以重复参数匹配组的正则表达式,比如

InitValue\((?:(\w+)\s*(?:,(?!\s*\))|(?=\s*\)))\s*)*\)

玩一玩 Debuggex Demo使其符合您的要求。

关于c# - 正则表达式捕获组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54076732/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com