替换两个字符串之间的多行文本

时间:2015-02-01 12:26:49

标签: javascript regex multiline

我需要使用Javascript正则表达式替换oldfoo{之间的}bar值。

foo{old}bar

如果old是一行,则此方法有效:

replace(
    /(foo{).*(}bar)/,
    '$1' + 'new' + '$2'
)

我需要使用它:

foo{old value
which takes more
than one line}bar

我应该如何更改正则表达式?

1 个答案:

答案 0 :(得分:4)

将正则表达式更改为,

/(foo{)[^{}]*(}bar)/

OR

/(foo{)[\s\S]*?(}bar)/

这样它也会匹配换行符。 [^{}]*匹配任何字符,但不匹配{}的任何字符,零次或多次。 [\s\S]*?匹配任何空格或非空格字符,非贪婪地匹配零次或多次。