否定类正则表达式

时间:2017-10-21 20:42:11

标签: regex regex-negation

我写了这个正则表达式来标记文本:"\b\w+\b"

但有人建议我将其转换为\b[^\W\d_]+\b

任何人都可以向我解释为什么第二种方式(使用否定)更好?

感谢

1 个答案:

答案 0 :(得分:1)

第一个匹配所有字母,数字和下划线。根据正则表达式引擎,这可能包括unicode字母和数字。 (在这种情况下,单词边界是多余的btw。)

第二个正则表达式只匹配字母(不包括非字符字符,数字和下划线)。由于单词边界,它只会匹配它们,如果它们被非单词字符或字符串的开头/结尾包围。

如果您的正则表达式引擎支持此功能,您可能希望使用[[:alpha:]]\p{L}(或非{un}的[A-Za-z]),而不是让您的意图更清晰。