регулярное выражение слияния javascript

1

Когда /^\.\/(?!main(\.js)?$)/ означает все файлы src, кроме ./main.js, /^\.\/(?!style.*)/ означает, что все src файлы, кроме ./style/*

Затем я использую /^\.\/(?!main(\.js)?$) | ^\.\/(?!style.*)/ /^\.\/(?!main(\.js)?$) | ^\.\/(?!style.*)/ хотите потребовать все файлы src, кроме ./main.js и ./style/* но не работать

Спасибо за помощь.

Теги:

1 ответ

1

Вам не нужно повторять шаблоны потребления, просто установите условия внутри негативного прогноза:

/^\.\/(?!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 будет сопоставлено.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню