我需要在下面的句子中捕获两个组,一个是我,另一个是可选
I want to match random optional field.
我尝试了以下方法,但它没有产生预期的结果:
(I).*?(optional)?
删除围绕可选的圆形专利可以正确匹配,但由于我需要第二场比赛,我不能这样做。
(I).*?optional?
那么如何才能正确匹配两个组?谢谢!
答案 0 :(得分:2)
你的正则表达式的诀窍在于你需要对optional
之前与optional
不匹配的任何内容进行分组(并丢弃)。
使用否定环视(前缀为?:
,以便该组不用于捕获):
(I)(?:(?!optional).)*(optional)?.*
答案 1 :(得分:0)
您可以尝试以下正则表达式:
(I).*(optional)
这对括号将返回捕获组。