docuement.alert() -6ren">
gpt4 book ai didi

java - 从java字符串替换脚本标签

转载 作者:行者123 更新时间:2023-11-30 04:06:05 26 4
gpt4 key购买 nike

考虑下面的字符串

String html = "<div>test> <div /><script > docuement.alert()
</script> <p>ptag</p>";

我使用正则表达式通过替换脚本标签来完成它

    System.out.println(s.replaceAll("(?s)<script.*?(/>|</script>)", ""));

这给了

<div >test> <div />suresh >   <p>ptag</p>

但是我被要求转换成

<div >test> <div />&lt;script &gt;  docuement.alert()
&lt;/script &gt; <p>ptag</p>

使用 subStringindexOf 我可以实现这一点,但我不知道如何使用正则表达式来做到这一点。

感谢任何帮助。

最佳答案

怎么样

s.replaceAll("(?i)<(/?script[^>]*)>", "&lt;$1&gt;")

这会发现

  • (?i)不区分大小写的标志
  • <
  • 可选/之后
  • script字面意思,感谢 (?i)它还将匹配 script , ScrIPt , SCRIPT ,...
  • [^>]*零个以上非 >字符
  • >

使用括号,我将部分放在 < 之间和>在第 1 组中,稍后可以通过 $1 进行替换.

<小时/>

演示

String s = "<div >suresh > <div />suresh >  <script > docuement.alert()"
+ " </script> <p>ptag</p>";
System.out.println(s.replaceAll("(?i)<(/?script[^>]*)>", "&lt;$1&gt;"));

输出:

<div >suresh > <div />suresh >  &lt;script &gt; docuement.alert() &lt;/script&gt; <p>ptag</p>

关于java - 从java字符串替换脚本标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20685168/

26 4 0