繁体   English   中英

.NET Regex分组:从组中排除字符串

[英].NET Regex Grouping: Exclude String from group

当我在.NET中使用正则表达式时

(.+) (cb|b)

我有一个像“somestring cb”这样的字符串我总是在第一组中获得“somestring c”而在第二组中获得“b”。

我希望在第一组中获得“somestring”,在第二组中获得“cb”。

任何的想法?

(.+?) (c b|b)

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

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

一个简单的解决方案是通过在加号后添加问号使第一组不情愿,如下所示:

(.+?) (c b|b)

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

在括号内放置您想要匹配的内容,并在可接受的匹配项之间加上“或”符号。 例如,这个RegEx应该可以做到这一点:

(.+ b|b)

如下所示

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

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM