Javascript multiline regexp replace "foo\r\nbar".replace(/(foo).+/m, "bar") Здравствуйте. Я не могу понять, почему этот код не заменяет foo на bar Ответ 1 Я не могу понять, почему этот код не заменяет foo на bar Поскольку точка . явно не соответствует символам новой строки. Это будет работать: "foo\r\nbar".replace(/foo[\s\S]+/m, "bar") потому что символы новой строки считаются пробелами (\s). Обратите внимание, что круглые скобки вокруг foo являются излишними, группировка здесь не имеет преимуществ. Ответ 2 JavaScript не поддерживает модификатор dot-all. Обычная замена: "foo\r\nbar".replace(/(foo)[\s\S]+/, "bar") /m делает ^ и $ вести себя корректно, но не влияет на ..
Ответ 1 Я не могу понять, почему этот код не заменяет foo на bar Поскольку точка . явно не соответствует символам новой строки. Это будет работать: "foo\r\nbar".replace(/foo[\s\S]+/m, "bar") потому что символы новой строки считаются пробелами (\s). Обратите внимание, что круглые скобки вокруг foo являются излишними, группировка здесь не имеет преимуществ.
Ответ 2 JavaScript не поддерживает модификатор dot-all. Обычная замена: "foo\r\nbar".replace(/(foo)[\s\S]+/, "bar") /m делает ^ и $ вести себя корректно, но не влияет на ..