转换为XML

转换为XML,xml,regex,Xml,Regex,我正在尝试将从维基百科下载的对话转换为XML。我使用特殊导出以XML格式获取页面。。。在我进入主要对话之前,这很有效 <conversation> {{PersonA|Cheese}} {{PersonB|I like it too...}} {{PersonA|Cheese?}} </conversation> {{PersonA | Cheese}} {{个人|我也喜欢……} {{PersonA | Cheese?}} 这不是真正的对话。

我正在尝试将从维基百科下载的对话转换为XML。我使用特殊导出以XML格式获取页面。。。在我进入主要对话之前,这很有效

<conversation>
    {{PersonA|Cheese}}
    {{PersonB|I like it too...}}
    {{PersonA|Cheese?}}
</conversation>

{{PersonA | Cheese}}
{{个人|我也喜欢……}
{{PersonA | Cheese?}}
这不是真正的对话。。。无论如何,我想知道什么是将这样的大规模对话转换为有效XML的最简单方法

<conversation>
    <personA>Cheese</personA>
    <personB>I like it too...</personB>
    <personA>Cheese?</personA>
</conversation>

奶酪
我也喜欢它。。。
奶酪?
谢谢,这太长了,无法手动执行。我猜正则表达式可以帮上忙。。。不知何故。

模式:

\{\{(.*?)\|(.*?)\}\}
替换:

<$1>$2</$1>
2美元

这是一个适合您的示例的简单解决方案,但根据具体格式,可能需要更复杂的表达式。例如,如果名称包含管道怎么办?如果文本包含两个结束的花括号怎么办?文本可以跨多行吗?

是否每行都以
{{PersonA}
{{PersonB}
开头?是的。它们似乎都是这样开头的……唯一的例外是{{Action |谢谢Max,我会尝试一下……那么我需要一个特殊的文本编辑器来执行这个操作吗?还有,$1和$2变量是如何定义的?你需要一个支持正则表达式的文本编辑器。我想现在大多数都支持,但你必须告诉搜索/替换命令才能使用它们。
$1
(通常也写为
\1
)是一个反向引用,包含第一组括号中匹配的内容。