正则表达式\ b锚点(.net)

时间:2014-10-18 14:31:29

标签: .net regex

我熟悉正常表达式上的\ b锚点(在.net上工作),我不明白为什么

@"\b\w+\s\w+\b" 

不符合

"theme them" 

IN

"them theme them them" 

我相信这些空格是非单词字符,所以边界存在于(2)的两端,所以它应该是匹配的。

有人能解释我为什么错吗?

由于

1 个答案:

答案 0 :(得分:0)

由于匹配重叠,它与子串theme them不匹配。

首先,此\b\w+\s\w+\b正则表达式将匹配them theme,然后检查满足该模式的字符串。那么它匹配them them。它与中间theme them不匹配,因为子串theme已经匹配。

您需要使用正向前瞻以匹配已匹配的字符串。

@"(?=(\b\w+\s\w+\b))"

DEMO