正则表达式查找以%开头并以.DESCR结尾的字符串

时间:2016-06-08 16:57:31

标签: regex notepad++

我在Notepad ++中加载了一个非常大的源代码文件,我正在尝试使用它的正则表达式搜索功能来查找所有使用属性的地方。

我需要找到设置了属性DESCR的所有地方。我尝试在没有正则表达式的情况下搜索.DESCR,但是有太多结果让我筛选。我知道我要查找的代码将以%This.&和一些变量名称开头,后跟.DESCR =

我尝试使用RegExr构建正则表达式,但它找不到我想要的字符串。我看了here试图更多地了解正则表达式,但我仍然遗漏了一些东西。

编辑:更多说明 以下是我要寻找的一些例子:
%This.oPosition.DESCR = &DATAREC.Y_BUSINESS_TITLE.Value;
%This.data.DESCR = "";
&data.DESCR = "Analyst";
&oPosition.DESCR = &DATAREC.DESCR.Value;

然而,它不应该符合这些:
&P_NODE_PIN_DESCR = &NODE_PIN_DESCR;
&qLang.Descr = &sDescr;

我知道我方式偏离基础,但这是我尝试过的:

(\%This\.|\&[A-Z]+)\.DESCR =这不会捡到任何东西 \%This.|\&(A-Z)+.DESCR这取决于%This,但没有任何关注,也没有找到&前面的任何内容。
\%This.\w.DESCR =|\&\w+.DESCR =看起来它正在使用RegExr,但它在Notepad ++中没有正确匹配(它与&ACCT_DESCR =之类的内容相匹配)

我对正则表达式不够熟悉,无法理解我所缺少的内容。

编辑: Notepad ++搜索设置: enter image description here

2 个答案:

答案 0 :(得分:1)

您可以根据您的说明搜索runserver。请在搜索对话框中取消匹配大小写(除了您只搜索(?:%this\.|&)\w+\.DESCR =,但不会搜索This或类似情况。

  • this字面匹配(?:%this\.|&)%this.(但不区分大小写)
  • \ w +匹配一个或多个单词字符,即字母,数字或下划线。您还可以使用&更严格,只考虑字母 - 或[a-z]+搜索区分大小写时
  • [a-zA-Z]+字面上匹配\.DESCR =。如果您只想匹配DESCR区分大小写,则可以使用内联修饰符区分大小写:.DESCR =

答案 1 :(得分:0)

这就是为什么你的尝试无效:

  1. 您正在检查小写字母。 [A-Z]您需要检查[a-zA-Z]或使用不敏感修饰符/ i(在这种情况下由&#34表示;匹配案例"复选框

  2. 当使用或简单时,它指的是它之后的所有内容,直到它到达结尾或一个封闭的括号

  3. 这是你需要的正则表达式

    (\%This\.|\&)[A-Za-z]+\.DESCR
    

    如果您只想捕获.DESCR,您可以使用这样的非捕获组:

    (?:(?:\%This\.|\&)[A-Za-z]+)(\.DESCR)
    

    然后您可以使用反向引用$ 1或\ 1来替换这些特定外观中的.DESCR

    https://regex101.com/r/fW9lZ2/2