2013-03-19 188 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