【发布时间】:2014-04-15 21:29:02
【问题描述】:
当我在 .NET 中使用正则表达式时
(.+) (c b|b)
我有一个像“somestring c b”这样的字符串,我总是在第一组中得到“somestring c”,在第二组中得到“b”。
我想在第一组中获得“somestring”,在第二组中获得“c b”。
有什么想法吗?
【问题讨论】:
标签: c# .net regex string regex-group
当我在 .NET 中使用正则表达式时
(.+) (c b|b)
我有一个像“somestring c b”这样的字符串,我总是在第一组中得到“somestring c”,在第二组中得到“b”。
我想在第一组中获得“somestring”,在第二组中获得“c b”。
有什么想法吗?
【问题讨论】:
标签: c# .net regex string regex-group
【讨论】:
一个简单的解决方案是通过在加号后添加一个问号来使第一组不情愿,如下所示:
(.+?) (c b|b)
没有它,它就不会贪婪并匹配尽可能多的有效字符,在您的情况下,这意味着匹配第一组中的 c。
【讨论】:
将您想要匹配的内容放在括号内,并将“或”符号放在可接受的匹配项之间。例如,这个 RegEx 应该可以解决问题:
(.+ b|b)
【讨论】:
【讨论】: