【问题标题】:Replace multiline text between two strings替换两个字符串之间的多行文本
【发布时间】:2015-02-01 12:26:49
【问题描述】:

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

foo{old}bar

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

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

我需要让它工作:

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

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

【问题讨论】:

    标签: javascript regex multiline


    【解决方案1】:

    将您的正则表达式更改为,

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

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

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

    【讨论】:

    • 感谢您的快速回答!我会尽快接受。 :)
    猜你喜欢
    • 1970-01-01
    • 2021-07-23
    • 2019-12-25
    • 2021-01-28
    • 2020-06-26
    • 1970-01-01
    • 2016-09-18
    • 1970-01-01
    • 2018-06-14
    相关资源
    最近更新 更多