当/^\.\/(?!main(\.js)?$)/
表示需要除./main.js
以外的所有src文件时,
/^\.\/(?!style.*)/
表示需要除./style/*
然后我使用/^\.\/(?!main(\.js)?$) | ^\.\/(?!style.*)/
想要除./main.js
和./style/*
之外的所有src文件但不能正常工作
感谢您的帮助。
答案 0 :(得分:1)
您不需要重复消费模式,只需将条件置于否定前瞻中:
/^\.\/(?!style|main(\.js)?$)/
^^^^^^^^^^^^^^^^^^
请参阅regex demo。
<强>详情:
^
- 字符串开头\.\/
- ./
子字符串(?!style|main(\.js)?$)
- 如果在当前位置的右侧立即失败,则会出现以下情况:
style
- 文字style
子字符串main(\.js)?$
- main
或main.js
个子字符串($
)但是,您注意到style
应该在要求中跟/
,但您的正则表达式没有该检查。您可以在(\/|$)
之后追加style
来强制执行该检查(/
后面的style
或字符串结尾应该出现:
/^\.\/(?!style(\/|$)|main(\.js)?$)/
使用此正则表达式./style-main.js
will be matched。