正则表达式查找字符串,不包括注释

sag*_*gar 2 regex

我需要regex搜索SQLHELPER忽略注释代码的字符串(单行注释或多行注释)。我在视觉工作室搜索。

Wik*_*żew 6

您可以使用

(?<!^[\p{Zs}\t]*//.*)(?<!/\*(?:(?!\*/)[\s\S\r])*?)\bSQLHELPER\b
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

细节

  • (?<!^[\p{Zs}\t]*//.*) - 如果在当前位置的左侧,以下模式不匹配,则匹配失败的负向后视:
    • ^ - 行首
    • [\p{Zs}\t]* - 任何 0+ 个水平空格
    • //- 一个//子串
    • .* - 除换行符以外的任何 0+ 个字符
  • (?<!/\*(?:(?!\*/)[\s\S\r])*?) - - 如果在当前位置的左侧,以下模式不匹配,则匹配失败的负向后视:
    • /\*- 一个/*子串
    • (?:(?!\*/)[\s\S\r])*?- (缓和的贪婪标记)任何字符(与 匹配[\s\S\r]),0 次或更多重复但尽可能少(由于*?)不开始*/子字符串(由于(?!\*/)负前瞻)
  • \bSQLHELPER\b- 整个单词SQLHelper\b是单词边界)。

在此处输入图片说明