正则表达式——7.4 单词边界

  单词边界的准确解释是:一端必须出现\w能匹配的字符,另一端不出现\w能匹配的字符。在JavaScript、PHP、Python 2、Ruby中,\w只能匹配[0-9a-z-A-Z_]。所以在这些语言中,\b\w+\b能用来匹配几乎所有的英文单词。



字符串 正则表达式 能否匹配 说明
tom,jerry(半角标点) \btom\b \w不能匹配半角标点
tom,jerry(全角标点) \btom\b \w可以匹配全角标点
tom和jerry \b和\b \w可以匹配中文字符
汤姆,jerry(半角标点) \btom\b \w不能匹配半角标点
汤姆,jerry(全角标点) \btom\b \w可以匹配全角标点

  总的来说,如果使用 Unicode 匹配规则,尽量不要在处理中英文混排文本时使用\b。如果使用 ASCII 匹配规则,则可以再处理英文文本时放心地使用\b

  也有更复杂的情况,比如 Java 就是如此。在 Java 中,虽然\w只能匹配[0-9a-zA-Z_]\b对“单词字符”的判断确实按照 Unicode 匹配规则的。后面有详情

posted @ 2018-12-13 17:45  gaara724  阅读(616)  评论(0编辑  收藏  举报