【发布时间】:2018-01-16 13:48:31
【问题描述】:
我正在使用正则表达式来匹配源文件中的字符串。我有一个正则表达式:
(["'])(?:(?=(\\?))\2.)*?\1
仅当它们在同一行时,它才匹配开始和结束引号。例如,
"hello world!"
匹配,但是
"hello
world!"
没有。
是否可以修改它以使两种情况都匹配?
【问题讨论】:
-
这可能取决于您使用的工具/语言。我相信您在这里需要的是正则表达式处于 DOTALL 模式,这意味着 dot 也匹配换行符。使用您正在使用的工具进行更新。
-
如果您使用的语言没有
DOTALL或s标志,您可以使用[\s\S]代替. -
谢谢您的回复,我已经更新了问题。
-
附带说明,除非您有一个特殊情况下没有告诉我们的带有反斜杠的特殊情况,否则
(["']).*?\1似乎也可以工作,同时也不会令人困惑。 -
This question 似乎已经涵盖了您。由于我不是 Ruby 人,所以我不会尝试回答。