根据this文档,regex方法从2010年变更为2012年。
使用下面的Regex,我可以排除VS2010中所有的注解,用于所有情况
^~(:b*').*your_search_term.
但是当我们尝试下面的正则表达式(在文档中建议的更改之后)时,我能够从Visual Studio Find的搜索结果中排除注解,但仅限于某些情况。
^(?![ \t]*[']).*your_search_term.
^(?!(\s*')).*your_search_term.
^(?!(?([^\r\n])\s)*').*your_search_term.
当注解与代码在同一行时,上述Regex会失败。
ex: Try ' On Error GoTo test_EH
有没有办法通过使用Visual Studio 2017 Find排除所有注解来查找?
编辑:我们检查过的正则表达式为:
1. when comments are in the same line as code.
ex: Try ' On Error GoTo test_EH
2. When only Comment present in a line
ex: 'On Error GoTo test_EH
3. When there are words within ' ' in code
ex: Dim str1 As String = " 'test_EH' "
编辑:
修改Link中提到的正则表达式,我可以检测到项目中包含测试单词的所有注解。
(?mn)^(?<line>[^\r\n"']*(("[^"]*")[^\r\n"]*)*)(')[^\r\n]*test[^\r\n]*
但是否定该正则表达式以排除注解也将排除以下情况:
Dim test a string 'this is test example
如何修改此正则表达式以正确地排除注解?
2条答案
按热度按时间s4n0splo1#
我不熟悉旧语法,但根据您的要求,可以构建一个新的正则表达式,例如:
基本上,这将匹配任何:
'
开头的行'
开头的文本结尾的行在这两种情况下,只允许1个
'
,并且还必须找到文本test_EH
DEMO:
https://regex101.com/r/wj7M9t/1
如果需要,请提供更多细节/示例以进行微调
4uqofj5v2#
我合并并创建了www.example的正则表达式 www.example.com 语言,适用于VS2017中的所有上述情况。
Regex: