我需要使用Javascript正则表达式替换old
和foo{
之间的}bar
值。
foo{old}bar
如果old
是一行,则此方法有效:
replace(
/(foo{).*(}bar)/,
'$1' + 'new' + '$2'
)
我需要使用它:
foo{old value
which takes more
than one line}bar
我应该如何更改正则表达式?
答案 0 :(得分:4)
将正则表达式更改为,
/(foo{)[^{}]*(}bar)/
OR
/(foo{)[\s\S]*?(}bar)/
这样它也会匹配换行符。 [^{}]*
匹配任何字符,但不匹配{
或}
的任何字符,零次或多次。 [\s\S]*?
匹配任何空格或非空格字符,非贪婪地匹配零次或多次。