2016-06-08 168 views
0

我在Notepad ++中加载了一个非常大的源代码文件,我试图用它的正则表达式搜索功能来查找使用属性的所有地方。正则表达式寻找字符串以%开头并以.DESCR结尾

我需要找到设置属性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,但它不能在记事本中正确地匹配++(它匹配的东西像&ACCT_DESCR =

我只是不熟悉不够用正则表达式来了解我错过了什么。

编辑: 记事本+ +搜索设置: enter image description here

+0

你能提供的要匹配什么样一些样品。你确定你检查正则表达式作为搜索模式吗? –

+0

@SebastianProske后编辑。如果您需要更多信息,请与我们联系。 –

回答

1

您可以根据您的描述搜索(?:%this\.|&)\w+\.DESCR =。请搜索对话框勾去掉相符(除非你只搜索This,但不适用于this或相似。

  • (?:%this\.|&)比赛无论是%this.&逐字(但不区分大小写)
  • \ w +匹配一个或多个单词字符,因此可以使用字母,数字或下划线,也可以使用[a-z]+更严格并且只考虑字母 - 或[a-zA-Z]+当搜索区分大小写时
  • \.DESCR =匹配字面上的。为什么你的努力没有工作\.(?-i)DESCR =
+0

因此,当我在Notepad ++中删除区分大小写时,它也会找到像'qLang.Descr ='这样我不想要的东西。我该如何解决这个问题? –

+0

@CacheStaheli查看我的关于内联修饰符的编辑 –

0

这里是:

  1. 你只检查小写如果你只想匹配DESCR区分大小写,您可以使用内联修改为区分大小写。 [AZ]您需要检查[a-zA-Z]或使用不敏感的修饰符/ i(在这种情况下,由“匹配大小写”复选框

  2. 使用或简单时,它,直到它到达结束或闭合括号

这里的正则表达式,你需要

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

如果只想捕捉.DESCR您可以使用此非捕获组,如下所示:

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

然后,您可以使用反向引用$ 1或\ 1替换.DESCR在这些特定的出场

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

相关问题