2013-04-25 3 views
0

Я хочу объединить/слить результат регулярного выражения.merge/join результаты регулярного выражения для выделения

Например, это строка

hello foo bar 

регулярное выражение результат для образца /el/ =>el
регулярное выражение результат для образца /llo\sfo =>llo fo

Если я использовать трубы, результат - только одно совпадение.
для этой модели /el|llo\sfo/ результатом является только el

Мой желаемый результат должен быть ello fo
Прецедент для выделения многокамерного в тексте.

+1

Проблема в том, что совпадения не могут перекрываться (даже с глобальным модификатором 'g'). Думаю, вам придется искать шаблоны самостоятельно. –

ответ

0

Механизм Regex обрабатывает только одну строку. После того, как персонаж был израсходован, его нельзя обработать снова (Lookarounds не учитывают это, потому что они «просто смотрят»).

Поскольку ваши шаблоны должны были бы «перекрываться» на вашей примерной строке, они никогда не будут совпадать (в одном регулярном выражении). Они будут, однако, с глобальным флагом g и следующим вводом:

"helllo foo bar".match(/el|llo\sfo/g) 

Таким образом, единственным решение состоит в том, что вы используете два отдельных регулярные выражения для вашей цели.

Смежные вопросы