我正在尝试匹配类似的内容:
aabbaCaabaCabCbaCCC
,分组为(aabbaCaabaCabCba)(CCC)
,即任何最终 C
s 作为一个单独的组进行匹配。
我以为我可以以某种方式使用惰性匹配,但我尝试过的任何方法都不起作用。例如:
/(a+|b+|C*?)+(C*)/
和/(a+|b+|C*)+?(C*)/
匹配太多或不够;它们包括CCC
在第一组中,或者它们仅匹配初始 aa
.
顺便说一句,这是用 JavaScript 编写的。
最佳答案
您可以使用此正则表达式
\b([abC]*?)(C*)\b
<强> Regex Demo
JS 演示
var re = /\b([abC]+?)(C*)\b/g;
var str = "aabbaCaabaCabCbaCCC";
if ((m = re.exec(str)) !== null) {
document.writeln("<pre>" + m[1] + "</br>" + m[2] + "</br>" + "</pre>");
}
关于javascript - 组内正则表达式惰性匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37361639/