我需要在多个文件中替换以下模式。
this\.dialogs = {.*};
当我在此处设置single line
标志时,此方法正常:
https://regex101.com/r/dF2yG3/2
但是我无法在VS或Notepad ++等编辑器中使用它,它只能匹配一行。
如何更改任何这些编辑器中的正则表达式或设置标志,以便我可以跨越多行?
答案 0 :(得分:3)
请注意,您只想使用
(?s)this\.dialogs = \{.*\};
如果您想匹配从this.dialogs = {
到 last }
的字符串。
要仅匹配最接近的};
,请使用
(?s)this\.dialogs = \{.*?\};
(?s)
内联修饰符强制点匹配任何字符 inccuding 换行符。
在Notepad ++ 中,您可以在查找和替换中使用 .
匹配记事本++ 选项中的换行符对话框而不是(?s)
。
在Visual Studio 2015 (以及在VS2012,VS2013中),您需要使用
this\.dialogs = {[\s\S\r]*?};
匹配从this.dialogs = {
到最近的};
答案 1 :(得分:0)