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

Regex 编写此正则表达式的更好方法是什么?,regex,textmate,Regex,Textmate,我正在将XML子元素转换为元素参数,并在Textmate中使用了一个脏的正则表达式脚本。我知道点(.)不搜索换行符,所以我就是这样解决的 搜寻 language="(.*)" (.*)<education>(.*)(\n)?(.*)?(\n)?(.*)?(\n)?(.*)?</education> (.*)<years>(.*)</years> (.*)<grade>(.*)</grade> language=“(*)”

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

搜寻

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

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

我知道有更好的办法。请帮助我进一步提高我的正则表达式技能。

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

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

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

如果你能展示你拥有的一段XML,以及你想要的XML,这会很有帮助。我发现很难理解您想做什么。如何编写“(.*)(\n)?(.*)(\n)?(.*)(\n)?(.*)(.*)”、“$3$4$5$6$7$8$9”,这样我就不必为每一个可能的换行符和返回值重复我自己了?从正则表达式的角度来看,将
(.*)(\n)?(.*)(\n)?(.*)(.*)(.*)(.*)(.*)(.*)(.*)(\n)?)(.*)(.*)(.*)(.-)(.*)(\n)?(.-)(.
替换为
[\s\s]*?
。但实际上,正如前面提到的:不要用正则表达式解析xml。谢谢!我正在将这个Word文档转换为XML,所以我还不能用ActionScript解析它。
language="([^"]*)"