Если вы не уверены в используемом механизме регулярных выражений, попробуйте использовать только самые распространенные конструкции регулярных выражений, такие как .
, *
, [...]
.Поэтому вместо \w
попробуйте [a-zA-Z0-9_]
.
Не избегайте ничего внутри [...]
, имейте в виду, что для этого вам необходимо поставить ]
сразу после начального [
(не во вкусе ECMAScript, вам нужно будет экранировать ]
внутрикласс символов), -
может быть помещен в конец класса символов без экранирования, ^
не должно быть в начале.Обратите внимание, что \
может быть экранирован только в регулярных выражениях NFA, в основанных на POSIX, внутри выражений в скобках, \
анализируется как литерал \
char, так как выражения в скобках POSIX не поддерживают экранирование регулярных выражений внутри них.Не имеет смысла экранировать .
внутри [...]
, [\.]
является недопустимым шаблоном в регулярном выражении JS ES6 при компиляции с модификатором u
.Поэтому безопаснее писать [^.]
.
Разделители регулярных выражений используются только в некоторых языках программирования для определения регулярных выражений, но в программном обеспечении, подобном этому, вы имеете дело только со строковыми шаблонами.Таким образом, /
не является чем-то особенным и не требует экранирования.
Итак, я бы использовал здесь следующее регулярное выражение:
.+/[^.][0-9a-zA-Z_]+$