考虑以下HTML代码:


 < script> ...< / script>
< script>。 ..< /脚本>
< DIV> ...< / DIV>
<脚本> ...< /脚本>
<脚本> ... < /脚本>
<脚本> ...< /脚本>
<脚本> ...< /脚本>
<风格> ...< /style>
<script>...</script>
<script>...</script>
;&#xA; 我想将脚本部分合并为一个,如下所示:
&#xA;&#xA; &lt; script&gt; ...&lt; / script&gt ;&#XA;&LT; DIV&GT; ...&LT; / DIV&GT;&#XA;&LT;脚本&GT; ...&LT; /脚本&GT;&#XA;&LT;风格&GT; ...&LT; /风格&GT;& #xA;&lt; script&gt; ...&lt; / script&gt;&#xA;
&#xA;&#xA; 我尝试了这段代码:
& #xA;&#xA; while(true){&#xA; val newSource = source.replace(&#xA;“[&lt;] script [&gt;](。*?)[&lt;] / script [&gt;] \\ s * [&lt;] script [&gt;]” &#xA; .toRegex(setOf(RegexOption.MULTILINE,RegexOption.DOT_MATCHES_ALL)),&#xA;“&lt; script&gt; $ 1&lt; / script&gt;”)&#xA;&#xA; if(source.equals(newSource)){&#xA;打破;&#XA; }&#XA; source = newSource&#xA;}&#xA;
&#xA;&#xA; 它不优雅而且不起作用: - )
&#xA;&# xA;&lt; script&gt; ...&lt; / script&gt;
as它将消耗中间的&lt; div&gt;
和&lt; style&gt;
。我怎样才能禁止包含标签的内容?答案 0 :(得分:0)
fun main(args: Array<String>) {
var source="""
<script>...</script>
<script>...</script>
<div>...</div>
<script>...</script>
<script>...</script>
<script>...</script>
<script>...</script>
<style>...</style>
<script>...</script>
<script>...</script>
"""
source = source.replace(
"[<]/script[>]\\s*[<]script[>]"
.toRegex(setOf(RegexOption.MULTILINE, RegexOption.DOT_MATCHES_ALL)),
"\n")
println(source)
}