ruby - 每行一个html标签的正则表达式

标签 ruby regex

出于某种原因,我必须每行有一个 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/

相关文章:

css - Rails - 错误 CSS 样式

java - 从字符串中提取自定义 HTML 属性

javascript - 使用javascript执行服务器端ruby文件

java - 是否有一个实用程序可以以声明方式将具有自定义模式的字符串映射到 bean?

ruby-on-rails - 在数据库中存储正则表达式

javascript - 用 Javascript 正则表达式替换前导数字

regex - 使用正则表达式删除 RTF 模板中占位符的父段落

ruby - 无法在Elasticsearch中按自定义方法(列)的升序排序

ruby - 在 ruby​​ 中捕获可选参数

ruby-on-rails - 使用 Ruby 正则表达式解析时间