1

我有这个字符串:

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 的组。有没有办法让它返回匹配的组,以便我们可以在之后阅读匹配的文本?

4

1 回答 1

1

因为您的模式只使用环视,它只会检查模式,但永远不会包含匹配的模式,除了 环视中的任何组..

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

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

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

于 2013-03-08T17:23:29.350 回答