0

我使用一个应用程序在 XML 记录的自由文本字段中查找特定的文本模式。它使用正则表达式来识别模式,然后在 XML 中对其进行标记。对于一个特定的项目,如果我可以在我必须使用的模式之一前面添加 2 个字符 27,那将是一个很好的节省时间(我正在处理大约 1800 万条记录)。

这可以完成还是我只需要走很长的路?

4

2 回答 2

0

不,你不能有一个不存在的正则表达式匹配文本。正则表达式将只能返回作为原始文本一部分的文本。

但是,如果您匹配到组,您可能会使用组名称来获取有关您匹配的内容的额外信息。

于 2013-03-26T00:33:51.680 回答
0

如果您想编辑 XML 文件,Regex 不是正确的工具。相反,使用 Python、Perl、Ruby、PHP、Java 等现代语言和适当的 XML 解析器模块。如果你像 shell 一样在 Unix 中工作,我推荐xmlstarlet

也就是说,如果您想继续进行替换,可以尝试(风险自负):

sed -i -r 's/987654/27&/g' files*.xml 

(仅使用-iswitch 仅用于就地修改)

于 2013-03-26T00:35:25.823 回答