出于某种原因,我必须每行有一个 HTML 标记。因此,如果以下是输入:
<p><div class="class1 <%= "class3" %>class2">div content</div></p>
输出应该是:
<p>
<div class="class1 <%= "class3" %>class2">div content
</div>
</p>
正则表达式应该可以识别erb脚本标签和HTML标签的区别。不需要缩进。
这如何通过正则表达式完成?
最佳答案
你可以替换(?=<[\w/])
与 \n
.这是一个与 <
之前的位置匹配的 lookahed符号,后面跟一个字母或斜线。 (另一个选项是 (?=<(?!%))
)。
这适用于您发布的代码,但在很多情况下都失败了,名义上是 <
在属性中,或 <
在服务器端脚本和 JavaScript block 中。如果您需要更复杂的东西,您可能需要更强大的解决方案,例如 erb 解析器。
关于ruby - 每行一个html标签的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6530421/