实际上我在java中有一些带有一些html内容的字符串现在我想通过在java中使用正则表达式替换其他一些html内容
String htmlData="<textarea style="display:none"/> some other data here <textarea/> some more other data here <input type="text"/>";
现在我想替换如下:
String htmlData="<textarea style="display:none"></textarea> some other data here <textarea></textarea> some more other data here <input type="text"/>";
表示我需要将所有自我关闭的textarea标签更改为正确的语法textarea标签。
以下是我的尝试:
String htmlData = htmlData.replace("<textarea/>","<textarea></textarea>");
但是如何找到具有属性的textarea节点?
答案 0 :(得分:1)
我不知道为什么这与“第二次出现”有关,但这应该有效:
htmlData = htmlData.replaceAll("(<textarea[^/]*)/>", "$1></textarea>");
一些测试代码:
String htmlData = "<textarea style=\"display:none\"/> some other data here <textarea/> some more other data here <input type=\"text\"/>";
htmlData = htmlData.replaceAll("(<textarea[^/]*)/>", "$1></textarea>");
System.out.println(htmlData);
输出:
<textarea style="display:none"></textarea> some other data here <textarea></textarea> some more other data here <input type="text"/>
答案 1 :(得分:1)
这个应该适用或者你:
htmlData = htmlData.replaceAll("(<textarea[^>]*)/>", "$1></textarea>");
答案 2 :(得分:0)
试试这个:
<textarea[^/]*/>