替换两个字符串之间的多行文本
Replace multiline text between two strings
我需要使用 Javascript 正则表达式替换 foo{
和 }bar
之间的 old
值。
foo{old}bar
如果 old
是单行,这有效:
replace(
/(foo{).*(}bar)/,
'' + 'new' + ''
)
我需要让它与以下设备一起使用:
foo{old value
which takes more
than one line}bar
我应该如何更改我的正则表达式?
将您的正则表达式更改为,
/(foo{)[^{}]*(}bar)/
或
/(foo{)[\s\S]*?(}bar)/
这样它也可以匹配换行符。 [^{}]*
匹配任何字符但不匹配 {
或 }
,零次或多次。 [\s\S]*?
匹配任何 space 或非 space 字符,零次或多次非贪婪。
我需要使用 Javascript 正则表达式替换 foo{
和 }bar
之间的 old
值。
foo{old}bar
如果 old
是单行,这有效:
replace(
/(foo{).*(}bar)/,
'' + 'new' + ''
)
我需要让它与以下设备一起使用:
foo{old value
which takes more
than one line}bar
我应该如何更改我的正则表达式?
将您的正则表达式更改为,
/(foo{)[^{}]*(}bar)/
或
/(foo{)[\s\S]*?(}bar)/
这样它也可以匹配换行符。 [^{}]*
匹配任何字符但不匹配 {
或 }
,零次或多次。 [\s\S]*?
匹配任何 space 或非 space 字符,零次或多次非贪婪。