. net正则表达式分组:从组中排除字符串
本文关键字:排除 字符串 正则表达式 net | 更新日期: 2023-09-27 17:49:31
当我在。net中使用正则表达式时,如
(.+) (c b|b)
,我有一个字符串,如"somestring c b",我总是得到"somestring c"在第一组,"b"在第二组。
我想在第一组中得到"somestring",在第二组中得到"c b"。
任何想法?
(.+?) (c b|b)
?
是惰性限定符,它表示匹配满足整个正则表达式所需的最小字符数。
这是他们的网格和更多的细节
一个简单的解决方案是在加号后面加一个问号,使第一组不愿意,像这样:
(.+?) (c b|b)
如果没有这个,它将不会贪婪,并匹配尽可能多的有效字符,在您的情况下,这意味着匹配第一组中的c。
将想要匹配的内容放在括号内,并在可接受的匹配项之间加上"or"符号。例如,下面的RegEx可以达到这个效果:
(.+ b|b)
按如下操作
(.+[^c]) (c b|b)
演示