@flafy4

Как правильно написать это регулярное выражение?

Есть регулярное выражение:
/@tag(.|\n)*?@tag/gm

Идея такая, что он должен менять текст между тегами по такому методу:

str.replace(/@tag(.|\n)*?@tag/gm, 'replace')

Такую строку меняет:
@tag example @tag

А такую строку не меняет:
@tag 
example 
@tag


Хотя сервис например как regexr.com, говорит что должен:
5dcff3c1078cf742182010.png

В чем проблема, и как редактировать?
  • Вопрос задан
  • 81 просмотр
Решения вопроса 1
dollar
@dollar
Делай добро и бросай его в воду.
Всё меняет. Легко проверить в консоли:
5dcff51033564306707279.png
Возможно, у тебя помимо (или вместо) \n есть также \r
Попробуй так:
str.replace(/@tag(.|\n|\r)*?@tag/gm, 'replace')
Или так (универсально):
str.replace(/@tag[\s\S]*?@tag/gm, 'replace');
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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