我熟悉正常表达式上的\ b锚点(在.net上工作),我不明白为什么
@"\b\w+\s\w+\b"
不符合
"theme them"
IN
"them theme them them"
我相信这些空格是非单词字符,所以边界存在于(2)的两端,所以它应该是匹配的。
有人能解释我为什么错吗?
由于
答案 0 :(得分:0)
由于匹配重叠,它与子串theme them
不匹配。
首先,此\b\w+\s\w+\b
正则表达式将匹配them theme
,然后检查满足该模式的字符串。那么它匹配them them
。它与中间theme them
不匹配,因为子串theme
已经匹配。
您需要使用正向前瞻以匹配已匹配的字符串。
@"(?=(\b\w+\s\w+\b))"