Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我需要在下面的句子中捕获两个组,一个是I,另一个是可选的
I want to match random optional field.
我尝试了以下方法,但没有产生预期的结果:
(I).*?(optional)?
删除围绕optional的圆形专利可以正确匹配,但由于我需要第二个匹配,所以我不能这样做。
(I).*?optional?
那么如何正确匹配两个组呢?谢谢!
你的正则表达式的诀窍是你需要对任何导致optional不匹配的东西进行分组(并丢弃) optional。
optional
使用否定环视(带有?:前缀,以便该组不用于捕获):
?:
(I)(?:(?!optional).)*(optional)?.*
您可以尝试以下正则表达式:
(I).*(optional)
这对括号将为您返回捕获组。