如何抓住嵌套组的替代方案?
我想首先返回捕获组:(.*)((core\/)?\/misc\/drupal\.js)
(即字符串core/misc/drupal.js
之前的任何内容,可能包含core/
,也可能不包含core/
。)
但是,mono ~/Downloads/nuget.exe restore Open-XML-SDK.sln
部分始终包含在第一个捕获组中,而不是第二个捕获组。
另请参阅this示例。
答案 0 :(得分:1)
你的正则表达式有一个问题:你在(core\/)?
组的末尾有一个斜杠字符,后跟\/misc\/drupal\.js
中的另一个斜杠字符。这会导致core/
部分在第一个点规则中被解析,无论如何。
删除额外的斜杠是不够的。为了避免点占用尽可能多的字符,您必须通过向?
量词添加*
来禁用默认的贪婪行为,如下所示:
(.*?)((core\/)?misc\/drupal\.js)
在行动here中查看。