Когда /^\.\/(?!main(\.js)?$)/
означает все файлы src, кроме ./main.js
, /^\.\/(?!style.*)/
означает, что все src файлы, кроме ./style/*
Затем я использую /^\.\/(?!main(\.js)?$) | ^\.\/(?!style.*)/
/^\.\/(?!main(\.js)?$) | ^\.\/(?!style.*)/
хотите потребовать все файлы src, кроме ./main.js
и ./style/*
но не работать
Спасибо за помощь.
Вам не нужно повторять шаблоны потребления, просто установите условия внутри негативного прогноза:
/^\.\/(?!style|main(\.js)?$)/
^^^^^^^^^^^^^^^^^^
См. Демо-версию regex.
Детали:
^
- начало строки\.\/
- a ./
подстрока(?!style|main(\.js)?$)
- отрицательный lookahead, не соответствующий совпадению, если сразу справа от текущего местоположения, есть: style
- буквальная подстрока style
main(\.js)?$
- main
или main.js
подстроки в конце строки ($
) Тем не менее, вы заметили, что style
должен сопровождаться /
в требовании, но ваше регулярное выражение не имеет этой проверки. Вы можете добавить (\/|$)
после того, как style
, чтобы обеспечить соблюдение этой проверки (а /
или конец строки должны появиться сразу после style
):
/^\.\/(?!style(\/|$)|main(\.js)?$)/
С этим регулярным выражением, ./style-main.js
будет сопоставлено.