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

正则表达式\b锚点(.net),.net,regex,.net,Regex,我逐渐熟悉在.net上工作的正则表达式上的\b锚点,我不明白为什么 @"\b\w+\s\w+\b" 不匹配 "theme them" 在 我相信空格是非单词字符,所以在2的两端都有一个边界,所以应该是匹配的 有人能解释我为什么错了吗 谢谢由于匹配重叠,它将不匹配子字符串主题 首先,这个\b\w+\s\w+\b正则表达式将匹配它们的主题,然后检查满足模式的字符串。因此,它与它们相匹配。因为子字符串主题已经匹配,所以它不会匹配它们之间的主题 您需要使用正向前瞻来匹配已经匹配的字符串 @"(?

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

@"\b\w+\s\w+\b" 
不匹配

"theme them" 

我相信空格是非单词字符,所以在2的两端都有一个边界,所以应该是匹配的

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


谢谢

由于匹配重叠,它将不匹配子字符串主题

首先,这个\b\w+\s\w+\b正则表达式将匹配它们的主题,然后检查满足模式的字符串。因此,它与它们相匹配。因为子字符串主题已经匹配,所以它不会匹配它们之间的主题

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

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