我正在将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>
我知道有更好的方法可以做到这一点。请帮助我进一步提高我的正则表达能力。
答案 0 :(得分:2)
使用xml解析器,不要使用正则表达式来解析xml。
答案 1 :(得分:0)
如果<education>
元素中没有其他标记,我会将该部分更改为:
<education>([^<>]*)</education>
如果可能,我会在您使用.*
的其他任何地方使用相同的技术。如果是language
属性,则采用以下形式:
language="([^"]*)"