2013-03-19 43 views
0

以下是我必須使用的文本報告的部分列表。該報告過於冗長,我想看看,如果正則表達式(或其他工具)可以去除線時orig=)之間的字符串相匹配cust=)之間正則表達式:如果兩個字符串匹配,則選擇整行

我在正則表達式已經涉足的字符串,但我不能不知道。我甚至不確定正則表達式是否適合這樣的事情......

雖然這個例子只顯示那裏,數據將包含句點和數字。

action:::include:::pageheader 
    id:::(orig=pageHeader),(cust=pageHeader) 
action:::clientarea:::clientarea 
    id:::(orig=clientarea),(cust=clientarea) 
action:::tabgroup:::maintabs 
    id:::(orig=maintabs),(cust=maintabs) 
    style:::(orig=form),(cust=form) 
action:::tab:::results 
    default:::(orig=true),(cust=true) 
    id:::(orig=results),(cust=results) 
    label:::(orig=List),(cust=List) 
    type:::(orig=list),(cust=list) 
action:::menubar:::actiontoolbar 
    event:::(orig=search),(cust=search) 
    id:::(orig=actiontoolbar),(cust=actiontoolbar) 
    sourcemethod:::(orig=getAppSearchOptions),(cust=getAppSearchOptions) 
+0

那麼,從您的示例輸入中,它會刪除所有縮進行?你是否也將這個應用於任何特定的編程語言?一些正則表達式引擎具有不同的功能/行爲與其他功能略有不同。 – 2013-03-20 00:25:41

+0

我正在使用editplus執行搜索並替換 – Sun 2013-03-21 02:50:56

+0

不需要刪除。我可以做第二次通過 – Sun 2013-03-21 23:52:01

回答

1

我不確定你使用的是什麼工具。假設基於Perl的正則表達式語法:

^.*\(orig=([^)]*)\).*\(cust=\1\).*$ 

這假定內部(orig=...)文本不包含右括號)

更新

隨着EditPlus的對regular expressions的支持初級水平,這是不可能完成所需的任務。特別是,回參考是必要的,但功能從丟失搜索與正則表達式。

我建議你使用不同的文本編輯器來完成任務。

+0

正則表達式似乎只拿起等於1的值。 – Sun 2013-03-21 23:37:47

+0

@SunWKim:看我的編輯。 EditPlus無法實現。 – nhahtdh 2013-03-22 02:41:43

+0

您是否知道任何支持您提及的反向引用的免費或開放源代碼的Win32文本編輯器? – Sun 2013-03-22 20:24:54