首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用正则表达式选择多个不同的文本/内容

如何使用正则表达式选择多个不同的文本/内容
EN

Stack Overflow用户
提问于 2016-04-22 21:39:19
回答 1查看 38关注 0票数 0

我有几乎一百万行的xml数据,我想用几乎相同但有些不同的文本替换10多个不同的内容。请参见下面的示例

代码语言:javascript
复制
<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>

假设我想要替换

代码语言:javascript
复制
<wp:postmeta>
            <wp:meta_key>vibe_author

和或

代码语言:javascript
复制
vibe_prev_next</wp:meta_key>
            <wp:meta_value><![CDATA[H]]></wp:meta_value>
        </wp:postmeta>

我应用以下代码:

代码语言:javascript
复制
(<wp:postmeta>
            <wp:meta_key>)vibe_author|vibe_prev_next.*?</wp:postmeta>

但它只是选择

代码语言:javascript
复制
<wp:postmeta>
            <wp:meta_key>vibe_author

代码语言:javascript
复制
vibe_prev_next</wp:meta_key>
            <wp:meta_value><![CDATA[H]]></wp:meta_value>
        </wp:postmeta>

如何选择

代码语言:javascript
复制
<wp:postmeta>
            <wp:meta_key>vibe_author</wp:meta_key>
            <wp:meta_value><![CDATA[H]]></wp:meta_value>
        </wp:postmeta>

代码语言:javascript
复制
<wp:postmeta>
            <wp:meta_key>vibe_prev_next</wp:meta_key>
            <wp:meta_value><![CDATA[H]]></wp:meta_value>
        </wp:postmeta>

在同一时间?

EN

回答 1

Stack Overflow用户

发布于 2016-04-26 22:25:43

您已经很接近了,但是您将交替|放在表达式的顶层。

它应该已经应用于您需要在其间交替的一组值,例如,(vibe_author|vibe_prev_next)尝试使用以下表达式:

代码语言:javascript
复制
(?s)<wp:postmeta>\s*<wp:meta_key>(?:vibe_author|vibe_prev_next).*?</wp:postmeta>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36795442

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档