Является ли (^ | \ s) допустимым регулярным выражением в JavaScript?

1

Рекомендуется ли использовать анкеры внутри групп захвата? Я пытаюсь имитировать работу lookbehind с этим шаблоном, чтобы соответствовать началу строки или пробелу.

Например, чтобы соответствовать хэштегам, которые находятся в начале строки или после пробела И они закончат строку или после них будет пробел, есть ли лучший способ сделать это, чем это?

(^|\s)#([\w]+)($|\s)

Я просто не собирал группы для простоты.

  • 1
    Добро пожаловать на ТАК! Пожалуйста, предоставьте немного (больше) кода, чтобы мы могли помочь вам - иначе: это зависит ...
  • 0
    Я бы просто оставил все как есть или изменил бы на (^|\s)#([\w]+)(?!\S)
Теги:
capturing-group
lookbehind

1 ответ

0

В вашем случае (^|\s) требуется внутри группы, потому что она используется в чередованиях.
Он говорит BOS или пробелы, но не оба.

Fwiw, (^|\s) является типичной границей пробела, которая не требует группы.
Это эквивалентно (?<!\S).

Но JS не поддерживает взгляд за утверждениями, поэтому вам придется оставить это.

Для другой стороны (\s|$) это было бы (?!\S) которое использует утверждение вперед, которое поддерживает JS.

Ещё вопросы

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