我需要在多个文件中替换以下模式。this\.dialogs = {.*};
当我设置 single line
时,这工作正常标志在这里:
https://regex101.com/r/dF2yG3/2
但是我不能让它在像 VS 或 Notepad++ 这样的编辑器中工作,它只会匹配一行。
如何在任何这些编辑器中更改正则表达式或设置标志,以便使其跨越多行?
最佳答案
请注意,您只想使用
(?s)this\.dialogs = \{.*\};
如果你想匹配来自
this.dialogs = {
的字符串到最后 }
.只匹配最接近的
};
, 用(?s)this\.dialogs = \{.*?\};
(?s)
内联修饰符强制点匹配任何包含换行符的字符。在 Notepad++ 中 ,您可以使用
.
匹配 Notepad++ 中的换行符 “查找和替换”对话框中的选项而不是 (?s)
.在 Visual Studio 2015 中 (在 VS2012、VS2013 中也是如此),您需要使用
this\.dialogs = {[\s\S\r]*?};
匹配来自
this.dialogs = {
的字符串到最近的 };
关于regex - VS2015 或 NP++ 中的多行正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064696/