Поддерживает ли JExcript RegExp # exec() НЕ обрабатывать несколько результатов с помощью флага 'g'? Если нет, то каковы альтернативы?node.js RegExp не обрабатывает несколько совпадений с флагом 'g'?
У меня есть строка, как это:
a* 2
b 3
c* 4
, и я хочу, чтобы извлечь только те строки, которые имеют звездочку. Я написал это регулярное выражение:
/\w+\*\s+(\d+)\n/g
(т.е. она соответствует слову, за буквальным звездочкой и пропусками, за которым следует захвата группы цифр с последующим переводом строки, и имеет глобальный флаг включен).
В восхитительном https://regex101.com/#javascript, применяя строку в регулярное выражение возвращает два матча, как и ожидалось:
Match 1
1. '2'
Match 2
1. '4'
Но в Node.js, я получаю это:
> match = re.exec(str)
> match
[ 'a* 2\n', '2', index: 0, input: 'a* 2\nb 3\nc* 4\n' ]
Оказывается матч объект не является многомерным, или, по крайней мере, он захватывает только первое совпадение.
Я пропустил что-то фундаментальное? И (как я спросил наверху) есть ли разумная альтернатива?
Doh! Я полагаюсь на документы MDN - я не знаю, как я пропустил это. Это, безусловно, правильный ответ. Благодарю. –