我在Node中执行以下正则表达式:
var checkPath = '^\/path\/([\w]+)\/messages$';
var path = '/path/54946fde030ba8cc5471efc9/messages';
var match = path.match(checkPath);
这似乎不起作用。
然而,当我这样做时:
var checkPath = '^\/path\/([0-9a-z]+)\/messages$';
var path = '/path/54946fde030ba8cc5471efc9/messages';
var match = path.match(checkPath);
似乎有效。
有什么区别?
答案 0 :(得分:3)
你可能想写像
var checkPath = '^/path/(\\w+)/messages$';
var path = '/path/54946fde030ba8cc5471efc9/messages';
var match = path.match(checkPath);
所做的更改
将\w
转换为\\w
\w
=> [a-zA-Z0-9_]
因此将\w
括在另一个类中并不会增加任何优势,只需简写为\w