- 此问题在此处已有答案**:
How can I make part of regex optional?(2个答案)
2天前关闭。
我使用这个正则表达式have (?=(an|the) agreement)
来查找"have an/the agreement",但是我还想捕获"have agreement"。我该如何实现呢?
How can I make part of regex optional?(2个答案)
2天前关闭。
我使用这个正则表达式have (?=(an|the) agreement)
来查找"have an/the agreement",但是我还想捕获"have agreement"。我该如何实现呢?
2条答案
按热度按时间f0brbegy1#
您可以将正则表达式的中间部分设置为 optional
∮ ∮ ∮ ∮
brccelvz2#
您的正则表达式既不匹配“have an agreement”也不匹配“have the agreement”,而只匹配“have“(如果后面跟有“an”或“the”)。
一个满足你所有需求的正则表达式是
其中有两个非捕获组(以
(?:
开头):(?:(?:an|the) )
与内部组加上其后的空格匹配外部的非捕获组本身是完全可选的,由它后面的
?
标记,所以你也可以只使用“have agreement”--两个词之间只有一个空格。