我尝试匹配以下文件格式,以使用绝对URL为文件添加前缀。字符串是index.html
文件的一部分,我使用npm replace
来查找/替换。以下是不同的文件名:
我已尝试过以下正则表达式:
(main\.)?(\w)+\.(css|js|woff|woff2|eot|ttf|png|ico){1}
这匹配文件名和扩展名中的最后一个字符,而不是完整的文件名和扩展名。需要更改什么才能匹配完整的文件名,以便我可以在绝对路径前加上?
答案 0 :(得分:1)
删除多余的{1}
,更重要的是 - 将+
移到第二个捕获组中:
(main\.)?(\w+)\.(css|js|woff2?|eot|ttf|png|ico)
^ ^
请参阅regex demo。
当您将一个量词设置为一个组时,整个组模式会重复匹配,但每次后续匹配时都会不断重写组堆栈的内容。因此,在许多情况下,总是要检查你量化的东西,你想要量化群体模式,而不是群体本身(除非它是一个非捕获群体,当你知道没有捕获任何东西时我们用它来分组一个序列子模式)。