Почему это регулярное выражение совпадает только один раз, независимо от того, против чего я его выполняю?

У меня есть это регулярное выражение:

/foo|bar\/baz/

По какой-то причине он сопоставляет строки, содержащие несколько вхождений foo и bar/baz, только один раз (например, foo the bar/baz). Почему?


person Community    schedule 03.09.2016    source источник


Ответы (1)


Он соответствует всем только один раз, потому что вы не включили глобальный поиск — функцию, которая не позволяет механизмам регулярных выражений возвращаться при первом совпадении. Вы можете включить его с помощью флага g, например:

/foo|bar\/baz/g

Приведенное выше регулярное выражение будет соответствовать foo the bar/baz дважды, как и следовало ожидать в первую очередь.

person Community    schedule 03.09.2016