. net正则表达式分组:从组中排除字符串

本文关键字:排除 字符串 正则表达式 net | 更新日期: 2023-09-27 17:49:31

当我在。net中使用正则表达式时,如

(.+) (c b|b)

,我有一个字符串,如"somestring c b",我总是得到"somestring c"在第一组,"b"在第二组。

我想在第一组中得到"somestring",在第二组中得到"c b"。

任何想法?

. net正则表达式分组:从组中排除字符串

(.+?) (c b|b)

?是惰性限定符,它表示匹配满足整个正则表达式所需的最小字符数。

这是他们的网格和更多的细节

一个简单的解决方案是在加号后面加一个问号,使第一组不愿意,像这样:

(.+?) (c b|b)

如果没有这个,它将不会贪婪,并匹配尽可能多的有效字符,在您的情况下,这意味着匹配第一组中的c。

将想要匹配的内容放在括号内,并在可接受的匹配项之间加上"or"符号。例如,下面的RegEx可以达到这个效果:

(.+ b|b)

按如下操作

(.+[^c]) (c b|b)
演示