正则表达式查找和替换

问题描述:

我有一个非常糟糕的格式化XML文件,我正在寻找替换一些标签的名称。正则表达式查找和替换

例如...

<column name="id">1</column> 

应该成为

<id>1</id> 

我有超过7000项,不喜欢做手工这一点。我正在使用Dreamweaver的查找&替换。显然,示例中的值“1”是一个动态值。

干杯任何帮助......

+0

如果你有XSLT的一些知识,它可以用样式表来完成(我不敢说“简单”,我从来没有写过一个不到30分钟......) – fge 2012-01-04 15:00:32

查找:

<column name="id">(\d+)</column> 

替换

<id>$1</id> 

请务必检查对话框使用正则表达式

See further on Adobe's site

+1

更可能的是,OP在寻找'(\ d + )'被替换为' $ 2$1>',但方向看起来正确。 – dasblinkenlight 2012-01-04 14:54:46

+0

你们都是对的。感谢准确和迅速的回复家伙。 – jayfield1979 2012-01-04 15:00:47

+0

是的,用上面的解决方案推广看起来像要走的路 – fge 2012-01-04 15:00:53

搜索:<column name="id">(.*)</column> 替换:<id>\1</id>

一个简单的Python的解决方案,可能更容易使用Perl:

import re  # regular expression 
import sys  # command line arguments 

pat = re.compile(r'<column name=\"id\">(\d*)</column>', re.IGNORECASE) 

if __name__=='__main__': 
    filename = sys.argv[1] 

    for line in open(filename): 
     matchObj = pat.search(line) 
     if matchObj != None: 
      s"<id>" + matchObj.group(1) + "</id>" 
     else: 
      print line