将几个<script>标签合并到Kotlin中
考虑以下一段HTML代码:
<script>...</script> <script>...</script> <div>...</div> <script>...</script> <script>...</script> <script>...</script> <script>...</script> <style>...</style> <script>...</script> <script>...</script>
我想将脚本部分合并为一个,如下所示:
<script>...</script> <div>...</div> <script>...</script> <style>...</style> <script>...</script>
我试过这段代码:
while (true) { val newSource = source.replace( "[<]script[>](.*?)[<]/script[>]\\s*[<]script[>]" .toRegex(setOf(RegexOption.MULTILINE, RegexOption.DOT_MATCHES_ALL)), "<script>$1</script>") if (source.equals(newSource)) { break; } source = newSource }
这不是优雅,不工作:-)
- 我想避免循环。 我可以写一个正则表达式来处理整个代码吗?
- 这实际上会导致只有一个
<script>...</script>
,因为它将消耗中间的<div>
和<style>
。 我如何禁止包含标签的内容?
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) }