谁能解释一下这个正则表达式 \b((?!abc)\w)+\b

来源:百度知道 编辑:UC知道 时间:2024/06/04 00:27:33
看了一篇教程,里面解释:匹配不包含连续字符串abc的单词
但我还是看不懂怎样做到的

应该是没理解(?!abc)的意义,(?!)匹配的是一个位置,不占用任何字符。
(?!abc)的意义就是从当前匹配到的位置起,接下来不是一个字符"a"接着一个字符"b"接着一个字符"c"。
(?!abc)\w的意义是用(?!abc)来限定\w的匹配,从\w的位置起不能出现一个字符"a"接着一个字符"b"接着一个字符"c"。
((?!abc)\w)+就是多个被限定的\w组成的单词,这个单词中肯定不会出现"abc"。

再举个例子:
(?!office)[a-z]+2000:不匹配"office2000",匹配"windows2000"
(?!a11)a:匹配"a10a11a12"中的第一个和第三个"a"