我需要在下面的句子中捕获两组,一组是我,一组是optional
I want to match random optional field.
我尝试了以下方法,但没有产生预期的结果:
(I).*?(optional)?
去掉optional周围的圆专利可以正确匹配,但是因为我需要第二个匹配,所以我不能这样做。
(I).*?optional?
那么我怎样才能正确匹配这两个组呢?谢谢!
最佳答案
正则表达式的诀窍在于,您需要分组(并丢弃)导致 optional
且与 optional
不匹配的所有内容。
使用否定环视(使用 ?:
前缀,以便该组不用于捕获):
(I)(?:(?!optional).)*(optional)?.*
关于c# - 匹配以随机内容开头的可选模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15756101/