.NET中的正则表达式组匹配

时间:2013-03-08 17:08:55

标签: .net regex

我有这个字符串:

of cabbages and kings and more kings

我想根据这个标准进行匹配:

- Any instance of "king"
- Any instances of "cab" OR "goat"
- No instances of "bill"

此正则表达式适用于IsMatch():

^(?=.*?(king))(?=.*?(cab|goat))(?=.*?(bill))

但它只返回1组长度为0的组。有没有办法让它返回匹配的组,以便我们可以读取匹配的文本?

1 个答案:

答案 0 :(得分:1)

由于您的模式仅使用外观,因此只会检查模式,但绝不会包含匹配的模式,除了 外观中的任何组 ..

如果要捕获完整的字符串,请使用具有给定模式的Match方法

^(?=.*king)(?=.*(?:cab|goat))(?=.*bill).*$

如果匹配模式,此正则表达式将匹配组0 中的完整字符串。