有谁可以告诉为什么下面的第1组只能捕获“400”而不是“123”? 谢谢!
图案:
((\d+)\s*)+.*LC\s*$
文本:
123 400 LC
“123”匹配“((\ d +)\ s *)+”和其他人匹配“。 LC \ s $”似乎也有效?但为什么正则表达式不使用这个?
答案 0 :(得分:0)
答案 1 :(得分:0)
答案 2 :(得分:0)
您当前的方法不会分别捕获每个数字序列,因为您正在重复一个模式,该模式将一个匹配(最后一个匹配)保留在捕获组中。此外,在没有重复模式的情况下,正则表达式风格不会重新尝试匹配,而后续字符全部使用.*
。
如果你的口味支持前瞻你很幸运:
(\d+)\s*(?=.*LC\s*$)