Regex查找同一字符的多个匹配项,并排除行中的单词
我正在使用Visual Studio 2017 Search(使用.NET Framework正则表达式)尝试构建一个复杂的正则表达式,但我没有将它们组合在一起 正则表达式将在每行中搜索多个字符=。目标值应介于两个=。 但我想排除多个单词,如(AND,OR,SELECT等) 我现在的查询如下所示:Regex查找同一字符的多个匹配项,并排除行中的单词,regex,visual-studio,visual-studio-2017,Regex,Visual Studio,Visual Studio 2017,我正在使用Visual Studio 2017 Search(使用.NET Framework正则表达式)尝试构建一个复杂的正则表达式,但我没有将它们组合在一起 正则表达式将在每行中搜索多个字符=。目标值应介于两个=。 但我想排除多个单词,如(AND,OR,SELECT等) 我现在的查询如下所示: ^(=.*){2}.$ 预期结果: 匹配()A(=B=)C 匹配()A和A(=B=)C) 避免A=D和B=C 避免A==B您可以使用 =(?:(?!\b(?:AND|OR|SELECT)\b)[^=
^(=.*){2}.$
预期结果:
匹配()A(=B=)C
匹配()A和A(=B=)C)
避免A=D和B=C
避免A==B您可以使用
=(?:(?!\b(?:AND|OR|SELECT)\b)[^=])+=
请注意,在VS搜索和替换工具中,[^=]
,一个被求反的字符类,不匹配换行符。如果要确保它与换行符不匹配,请在内部添加\r
和\n
,[^=\r\n]
详细信息
-一个=
符号=
-任何字符,但(?:(?!\b(?:AND | OR | SELECT)\b)[^=]+
(=
),1次或多次重复([^=]
),不启动非捕获组(+
,和
或或
)内的任何子字符串作为整个单词(因为选择
与单词边界匹配)\b
-一个=
符号=
试试
=(?:(?!\b(?:和|或|选择)\b)[^=])+=
我也不知道如何测试我的特定正则表达式引擎。输入是我庞大的代码库,我正试图使用visual studio的正则表达式搜索查找所有bug。对于.NETVS,S&R正则表达式与普通的.NET正则表达式略有不同。S&R功能在更换时也有点问题。