мультилиния JavaScript regexp замена

Я запускаю OSX. Предлагаемые решения не помогли мне. Я использую OSX Yosemite. Я перезапустил свой Mac, после чего я удалил VirtualBox, запустив скрипт удаления (который отображается при запуске dmg VirtualBox), а затем переустановил его. Я также удалил и переустановил Genymotion. Теперь все работает гладко.

25
задан Andrey Kuznetsov 4 April 2010 в 20:32
поделиться

2 ответа

Я не могу понять, почему этот код не заменяет foo на bar

Потому что точка . явно не соответствует символам новой строки.

Это будет работать:

"foo\r\nbar".replace(/foo[\s\S]+/m, "bar")

, потому что символы новой строки считаются пробелами ( \ s ).

Обратите внимание, что круглые скобки вокруг foo излишни, группировка здесь не дает никаких преимуществ.

27
ответ дан 28 November 2019 в 21:01
поделиться

JavaScript не поддерживает модификатор dot-all. Обычная замена:

"foo\r\nbar".replace(/(foo)[\s\S]+/, "bar")

/m заставляет ^ и $ вести себя корректно, но не влияет на ..

19
ответ дан Kobi 28 November 2019 в 21:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: