正则表达式组合标签

贝塔鱼

我有一个 xml 输出,如下所示

 <B-company> The  British </B-company> <I-company> Broadcasting  Corporation is a </I-company> <B-Type> public  </B-Type> <I-Type> service  broadcaster </I-Type> <HQ> headquartered   </HQ> <B-company> at  </B-company> <I-company> Broadcasting  </I-company> <B-Type> House  </B-Type> <I-Type> in  </I-Type> <HQ> London  </HQ>

这里 B-tag 代表开始标签,I-tag 显示延续标签/结束标签(如果没有找到更多的 I-tag)。

我正在寻找这样的东西作为输出

<company> The  British Broadcasting  Corporation is a </company> <Type> public   service  broadcaster </Type> <HQ> headquartered   </HQ> <company> at  Broadcasting  </company> <Type> House in  </Type> <HQ> London  </HQ>

即字符 'B-' 需要从第一个标签中删除,从而形成所有标签,直到我们有 '/I-' 标签并添加到最后。我们如何在 java regex 中实现这一点。

阿兰菲

你可以试试这个正则表达式:

</[BI]-(\w+)>\s*<I-\1>|(</?)[BI]-(\w+>)

并替换为\2\3.

在线演示。


它能做什么:

</[BI]-(\w+)>\s*<I-\1>匹配紧随其后的继续标签的结束标签。在第 2 组或第 3 组中没有捕获此文本,因此将删除与此匹配的所有文本。

(</?)[BI]-(\w+>)然后匹配以B-or开头的其余标签I-它捕获第2 组和第 3 组中B-or周围的文本I-,因此通过替换为\2\3B-orI-被有效地删除。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript正则表达式组合

来自分类Dev

量词的正则表达式组合*?

来自分类Dev

组合多个正则表达式

来自分类Dev

Java正则表达式-组合表达式

来自分类Dev

HTML标签的正则表达式

来自分类Dev

正则表达式替换标签

来自分类Dev

正则表达式的<a>标签列表

来自分类Dev

主题标签的正则表达式

来自分类Dev

正则表达式替换标签

来自分类Dev

正则表达式,替换某些组合

来自分类Dev

组合正则表达式的算法复杂度

来自分类Dev

Java正则表达式,符号组合除外

来自分类Dev

正则表达式用于组合多个序列

来自分类Dev

英尺英寸“通用”组合的正则表达式

来自分类Dev

正则表达式删除重复的字符和组合

来自分类Dev

正则表达式if,and和date组合公式

来自分类Dev

组合正则表达式字母和数字

来自分类Dev

Java正则表达式,符号组合除外

来自分类Dev

两个正则表达式的组合

来自分类Dev

正则表达式的字母/数字组合

来自分类Dev

python正则表达式特定字符,任意组合

来自分类Dev

使用正则表达式组合R中的单词

来自分类Dev

在javascript中组合正则表达式

来自分类Dev

在正则表达式中排除字符组合(如果找到了组合,则正则表达式应该失败)

来自分类Dev

在正则表达式中排除字符的组合(如果找到了组合,则正则表达式应该失败)

来自分类Dev

正则表达式提取特定<input>标签的值

来自分类Dev

正则表达式找到最后的身体标签

来自分类Dev

正则表达式替换HTML标签

来自分类Dev

html标签中的正则表达式