编写这个正则表达式的更好方法是什么?

时间:2010-03-26 22:12:30

标签: regex textmate

我正在将XML子元素转换为元素参数,并且我在Textmate中使用了一个脏的正则表达式脚本。我知道点(。)不会搜索换行符,所以我就是这样解决的。

搜索

language="(.*)"
(.*)<education>(.*)(\n)?(.*)?(\n)?(.*)?(\n)?(.*)?</education>
(.*)<years>(.*)</years>
(.*)<grade>(.*)</grade>

替换

grade="$13" language="$1" years="$11">
        <education>$3$4$5$6$7$8$9</education>

我知道有更好的方法可以做到这一点。请帮助我进一步提高我的正则表达能力。

2 个答案:

答案 0 :(得分:2)

使用xml解析器,不要使用正则表达式来解析xml。

答案 1 :(得分:0)

如果<education>元素中没有其他标记,我会将该部分更改为:

<education>([^<>]*)</education>

如果可能,我会在您使用.*的其他任何地方使用相同的技术。如果是language属性,则采用以下形式:

language="([^"]*)"