3

我需要在下面的句子中捕获两个组,一个是I,另一个是可选的

I want to match random optional field.

我尝试了以下方法,但没有产生预期的结果:

(I).*?(optional)?

删除围绕optional的圆形专利可以正确匹配,但由于我需要第二个匹配,所以我不能这样做。

(I).*?optional?

那么如何正确匹配两个组呢?谢谢!

4

2 回答 2

2

你的正则表达式的诀窍是你需要对任何导致optional不匹配的东西进行分组(并丢弃) optional

使用否定环视(带有?:前缀,以便该组不用于捕获):

(I)(?:(?!optional).)*(optional)?.*
于 2013-04-02T04:58:56.807 回答
0

您可以尝试以下正则表达式:

(I).*(optional)

这对括号将为您返回捕获组。

于 2013-04-02T04:39:08.907 回答