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

时间:2018-07-12 18:33:10

标签: regex

我需要一个regex来搜索忽略注释代码(单行注释或多行注释)的字符串SQLHELPER。我正在Visual Studio中搜索。

1 个答案:

答案 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是单词边界)。

enter image description here