我有几乎一百万行的xml数据,我想用几乎相同但有些不同的文本替换10多个不同的内容。请参见下面的示例
<wp:postmeta>
<wp:meta_key>_edit_last</wp:meta_key>
<wp:meta_value><![CDATA[5590]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key>slide_template</wp:meta_key>
<wp:meta_value><![CDATA[default]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key>_jetpack_related_posts_cache</wp:meta_key>
<wp:meta_value><![CDATA[a:0:{}]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key>vibe_author</wp:meta_key>
<wp:meta_value><![CDATA[H]]></wp:meta_value>
</wp:postmeta>
<wp:postmeta>
<wp:meta_key>vibe_prev_next</wp:meta_key>
<wp:meta_value><![CDATA[H]]></wp:meta_value>
</wp:postmeta>假设我想要替换
<wp:postmeta>
<wp:meta_key>vibe_author和或
vibe_prev_next</wp:meta_key>
<wp:meta_value><![CDATA[H]]></wp:meta_value>
</wp:postmeta>我应用以下代码:
(<wp:postmeta>
<wp:meta_key>)vibe_author|vibe_prev_next.*?</wp:postmeta>但它只是选择
<wp:postmeta>
<wp:meta_key>vibe_author或
vibe_prev_next</wp:meta_key>
<wp:meta_value><![CDATA[H]]></wp:meta_value>
</wp:postmeta>如何选择
<wp:postmeta>
<wp:meta_key>vibe_author</wp:meta_key>
<wp:meta_value><![CDATA[H]]></wp:meta_value>
</wp:postmeta>和
<wp:postmeta>
<wp:meta_key>vibe_prev_next</wp:meta_key>
<wp:meta_value><![CDATA[H]]></wp:meta_value>
</wp:postmeta>在同一时间?
发布于 2016-04-26 22:25:43
您已经很接近了,但是您将交替|放在表达式的顶层。
它应该已经应用于您需要在其间交替的一组值,例如,(vibe_author|vibe_prev_next)尝试使用以下表达式:
(?s)<wp:postmeta>\s*<wp:meta_key>(?:vibe_author|vibe_prev_next).*?</wp:postmeta>https://stackoverflow.com/questions/36795442
复制相似问题