正则表达式找到下一个特定标签eclipse

时间:2015-03-04 08:18:50

标签: regex eclipse

我正在尝试将/替换为null,就像这样

<h:graphicImage id=""> 

我的代码如下。

<h:graphicImage id=""/>
<a>
<b>
<rich:componentControl target=""/>
<a>
<b>
</h:graphicImage>

我使用的正则表达式,

(<h:graphicImage[^>]*\s*)/>[\s\S]<rich:componentControl[^>]*)

如果两个标签之间没有标签或内容,但是在我的代码中不幸的是,它们之间有许多标签。任何解决方案?

<h:graphicImage id=""/>
<rich:componentControl target=""/></h:graphicImage>

修改

为了更清楚我的问题, 我想替换

<h:graphicImage id=""/>  

<h:graphicImage id=""> 

当h:graphicImage标签有rich:componentControl这个标签时。

代码如下所示

<h:graphicImage id=""/>
<a>
<b>
<rich:componentControl target=""/>
<a>
<b>
</h:graphicImage>

1 个答案:

答案 0 :(得分:0)

不要使用正则表达式来解析XML或HTML 话虽如此,这应该工作(将ungreedy / Lazy标志设置为true):

(<h:graphicImage[^>.]*)\/>[.\S\s]*(<rich:componentControl[^>]*)

退房:https://regex101.com/r/gQ2vP7/1