【发布时间】:2015-03-03 14:13:13
【问题描述】:
我正在尝试制作一个正则表达式来识别复杂的脚本声明,例如:
script void bar(type foo, type baz)
两个“类型”都在同一个捕获组中
目前,我有正则表达式:
(script)\s(\w*)\s(\w*)\((?:([a-z|A-Z]+)\s\w+)?\)
这可以识别捕获组,如链接所示。 https://regex101.com/r/nB3oL3/3
- [0-6]
script - [7-11]
void - [12-15]
bar - [16-20]
type
它还可以识别字符串
script void bar(type foo)
script void bar()
这正是我想要的,除了它不会识别任何附加参数,例如“type baz”
script void bar(type foo, type baz)
我正在努力寻找一种递归识别“类型”的方法
", 输入 baz"不添加额外的捕获组(如果这甚至可能?)。我也不确定是否需要使用分支重置来获得这种效果?
因为我这样做是为了崇高,我认为它必须使用 python 正则表达式引擎。
任何帮助将不胜感激!
- 克里斯
【问题讨论】:
-
一个简短的说明 - 我刚刚注意到这只能识别小写,这不是我的意图,但很容易修复
标签: regex