当我在.NET中使用正则表达式时
(.+) (c b|b)
我有一个像“somestring c b”的字符串我总是在第一组中获得“somestring c”而在第二组中获得“b”。
我希望在第一组中获得“somestring”,在第二组中获得“c b”。
有什么想法吗?
答案 0 :(得分:2)
答案 1 :(得分:1)
一个简单的解决方案是通过在加号后添加问号使第一组不情愿,如下所示:
(.+?) (c b|b)
如果没有它,它就不会贪婪并且尽可能多地匹配有效字符,在你的情况下,这意味着匹配第一组中的c。
答案 2 :(得分:0)
在括号内放置您想要匹配的内容,并在可接受的匹配项之间加上“或”符号。例如,这个RegEx应该可以解决这个问题:
(.+ b|b)
答案 3 :(得分:0)