【问题标题】:Regex to match string over multiple lines正则表达式匹配多行字符串
【发布时间】:2018-01-16 13:48:31
【问题描述】:

我正在使用正则表达式来匹配源文件中的字符串。我有一个正则表达式:

(["'])(?:(?=(\\?))\2.)*?\1

仅当它们在同一行时,它才匹配开始和结束引号。例如,

"hello world!" 

匹配,但是

"hello
world!"

没有。

是否可以修改它以使两种情况都匹配?

【问题讨论】:

  • 这可能取决于您使用的工具/语言。我相信您在这里需要的是正则表达式处于 DOTALL 模式,这意味着 dot 也匹配换行符。使用您正在使用的工具进行更新。
  • 如果您使用的语言没有DOTALLs 标志,您可以使用[\s\S] 代替.
  • 谢谢您的回复,我已经更新了问题。
  • 附带说明,除非您有一个特殊情况下没有告诉我们的带有反斜杠的特殊情况,否则(["']).*?\1 似乎也可以工作,同时也不会令人困惑。
  • This question 似乎已经涵盖了您。由于我不是 Ruby 人,所以我不会尝试回答。

标签: ruby regex


【解决方案1】:

您正在寻找标志 m (/regexp/m)

它有点老了,但http://rubular.com/ 有一个 ruby​​ 正则表达式测试接口,剩下的基本类和修饰符。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-10-29
    • 1970-01-01
    • 2012-06-05
    • 2013-12-25
    • 1970-01-01
    相关资源
    最近更新 更多