我需要一个regex
来搜索忽略注释代码(单行注释或多行注释)的字符串SQLHELPER
。我正在Visual Studio中搜索。
答案 0 :(得分:2)
您可以使用
(?<!^[\p{Zs}\t]*//.*)(?<!/\*(?:(?!\*/)[\s\S\r])*?)\bSQLHELPER\b
请参见regex demo。
详细信息
(?<!^[\p{Zs}\t]*//.*)
-如果紧靠当前位置左侧的以下模式不匹配,则负向后搜索将使匹配失败:
^
-行首[\p{Zs}\t]*
-任意0+水平空格//
-一个//
子字符串.*
-除换行符以外的任何0+字符(?<!/\*(?:(?!\*/)[\s\S\r])*?)
--如果紧靠当前位置左侧的以下模式不匹配,则负向后寻找匹配失败:
/\*
-一个/*
子字符串(?:(?!\*/)[\s\S\r])*?
-(tempered greedy token)任意字符(与[\s\S\r]
匹配),重复0次或更多次,但由于开始*?
而越少越好*/
子字符串(由于(?!\*/)
否定前瞻)\bSQLHELPER\b
-整个单词SQLHelper
(\b
是单词边界)。