我正在研究Eloquent JavaScript第9章,其中一个问题就是找不到e的单词。
答案包含[^\We]
,但我不明白为什么\W
在那里很重要。当然,方括号表示单词字符集中的任何内容,而不是字母e,但为什么我不能省略\W
?我试过了,它没有用。
我有
/.*\b[^e]+\b.*/
简单地归还一切。正确的答案是
/\b[^\We]+\b/i
答案 0 :(得分:3)
\W
是非单词字符。请参阅documentation。
您的正则表达式为[^\We]
。这将匹配非单词字符和字母“e”的否定。换句话说,它匹配字母字符,除了字母'。'。
你不能省略\W
因为没有它,你的正则表达式将匹配除了' e'之外的所有内容,这不是要求(匹配单词字符集)除了' e')。