regex - VS2015 或 NP++ 中的多行正则表达式

标签 regex visual-studio-2015 notepad++

我需要在多个文件中替换以下模式。
this\.dialogs = {.*};
当我设置 single line 时,这工作正常标志在这里:
https://regex101.com/r/dF2yG3/2

但是我不能让它在像 VS 或 Notepad++ 这样的编辑器中工作,它只会匹配一行。
如何在任何这些编辑器中更改正则表达式或设置标志,以便使其跨越多行?

最佳答案

请注意,您只想使用

(?s)this\.dialogs = \{.*\};

如果你想匹配来自 this.dialogs = { 的字符串到最后 } .

只匹配最接近的 }; , 用
(?s)this\.dialogs = \{.*?\};
(?s)内联修饰符强制点匹配任何包含换行符的字符。

enter image description here

在 Notepad++ 中 ,您可以使用 .匹配 Notepad++ 中的换行符 “查找和替换”对话框中的选项而不是 (?s) .

enter image description here

在 Visual Studio 2015 中 (在 VS2012、VS2013 中也是如此),您需要使用
this\.dialogs = {[\s\S\r]*?};

匹配来自 this.dialogs = { 的字符串到最近的 };
enter image description here

关于regex - VS2015 或 NP++ 中的多行正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35064696/

相关文章:

mysql - 在字符串中搜索字符串的 SQL 查询(但字符串可能是分开的)

c++ - make_shared() 在给它一个已经创建的对象时调用析构函数两次

notepad++ - 从 WinSCP 编辑远程文件时保留换行符

regex - Notepad++:删除字符串中多个字符之后的所有内容

RegExp - Notepad++ 组合语句

java - 不包括空格的最小字符数

java - 如何在没有正则表达式的情况下拆分字符串

c++ - 排除某些目录的条件正则表达式

c++ - Visual Studio 2015 C++ UML 图创建者协会

c++ - 来自 Microsoft MSDN 的 WinUSB 教程