我认为我对正则表达式中的正向后行断言有些误解,这里有一个例子:
12,2 g this is fully random
89 g random string 2
0,6 oz random stuff
1 really random stuff
假设我想匹配度量单位后的所有内容,因此我想匹配“this is fully random”,“random string 2”,“random stuff”和“really random stuff”。
为了实现这一目标,我尝试了以下模式:
(?<=(\d(,\d)?) (g|oz)?).*
但是由于“?”表示0或1,所以在这种情况下,该模式似乎优先考虑0而不是1——因此我得到:
![输入图像描述](https://istack.dev59.com/SH05o.webp)
你有处理这个问题的任何想法吗?谢谢!
(?: g|)?
=(?: g|)
=(?: g)?
。 - Wiktor Stribiżew