正则表达式中的字符类vs速记

时间:2013-12-30 12:41:07

标签: javascript regex

regexp上的javscript documentation at MDN声明:

  

\ w匹配包括下划线在内的任何字母数字字符。相当于[A-Za-z0-9 _]

考虑到这一点,为什么我会以这种方式看到一些代码:[\w]。这只是beiong冗长的坏习惯吗? JavaScript明确指出\w等同于[A-Za-z0-9_]

任何有关官方文件的引用/引用(带链接)都将不胜感激。

2 个答案:

答案 0 :(得分:1)

\w[\w]的功能相同。这是“风格”/偏好的问题 但是,有时需要在字符类中使用\w,例如:

[\w ]* --> "abcd efg hijk" // Matches the whole line
\w*    --> "abcd efg hijk" // Matches "abcd"

Example

答案 1 :(得分:1)

每个工具对正则表达式的使用都有不同的解释。在这种情况下,他们都引用相同的。请记住,字符类不会嵌套在某些类型中,因此您需要单独使用POSIX样式的字符类[[:alnum:]_]\w

但是,是的,这里它们是相同的,IMO只是使用正则表达式的坏习惯。