2016-06-08 166 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

相關問題