使用JavaScript正则表达式查找所有`*.html`,但不查找`*.tmp.html`
我有一个大型项目,其中有许多使用JavaScript正则表达式查找所有`*.html`,但不查找`*.tmp.html`,javascript,regex,webpack,Javascript,Regex,Webpack,我有一个大型项目,其中有许多*.html文件和许多*.tpl.html文件 我想使用一个正则表达式来区分我的网页配置中的这两个 我尝试过用懒惰来实现这一点,比如*?\.html,但这也与*.tpl.html相匹配 如何做到这一点?对于regex,这应该可以做到 /.*?[^.tpl]\.html/ 编辑:第一个解决方案需要改进。如注释中所述,这将为test.t.html-提供误报,因为它匹配任何给定字符(.tpl) 使用 ^(?。*\.tpl.*.html bar.html // matche
*.html
文件和许多*.tpl.html
文件
我想使用一个正则表达式来区分我的网页配置中的这两个
我尝试过用懒惰来实现这一点,比如*?\.html
,但这也与*.tpl.html
相匹配
如何做到这一点?对于regex,这应该可以做到
/.*?[^.tpl]\.html/
编辑:第一个解决方案需要改进。如注释中所述,这将为test.t.html
-提供误报,因为它匹配任何给定字符(.tpl)
使用
^(?。*\.tpl.*.html
bar.html // matches
bar.tpl.html // doesn't match
test.t.html // matches
test.p.html // matches
test.z.html // matches
对于regex,这应该可以做到
/.*?[^.tpl]\.html/
编辑:第一个解决方案需要改进。如注释中所述,这将为test.t.html
-提供误报,因为它匹配任何给定字符(.tpl)
使用
^(?。*\.tpl.*.html
bar.html // matches
bar.tpl.html // doesn't match
test.t.html // matches
test.p.html // matches
test.z.html // matches
试试这个:
^(?!.*\.tpl).+\.html$
演示:
试试这个:
^(?!.*\.tpl).+\.html$
演示:
负向后看。如果您使用负查找,这可能会很有帮助。请确保在regex101上选择regexversion2。是否查找类似的内容?如果你放“!*”怎么办。html的负面查找。如果您使用负查找,这可能会很有帮助。请确保在regex101上选择regexversion2。是否查找类似的内容?如果你放“!*”怎么办。tpl.html'这也会匹配类似
a.t.html
[^.tpl]
的内容,除了.tpl
,一个字符序列之外,它没有任何意义。@revo-我知道,正如我在回答中提到的。然后你必须更新我认为答案背后的整个想法,因为它没有回答问题。@revo-你为什么不用正确的答案启发我们所有人,因为我显然没有足够快地为OP制定出让你满意的答案。这也会匹配类似a.t.html
[^.tpl]
除了.tpl
(一系列字符)之外没有任何意义。@revo-我知道,正如我在回答中提到的。然后你必须更新答案背后的整个想法,因为它不能回答问题。@revo-你为什么不用正确的答案启发我们大家,因为我显然没有足够快地为OP计算出满足你的方法。我会使用+
量词来阻止.html
单独匹配。我会使用$
锚来阻止匹配,例如.html.bak
@revo Sorry mate。在评论中没有看到你的正则表达式。它被复制了:(我会使用+
量词来阻止.html
单独匹配。我会使用$
锚来阻止它匹配,例如.html.bak
@revo Sorry mate。在注释中没有看到您的正则表达式。它被复制了:(