我想通过删除某些html节点(包括子节点(特别是标题和图像)并删除所有其他标签来生成文章的搜索预览,例如。离开子节点时的段落。
e.g。
"<h2>Subject</h2><p>Subject is the who, what, where, why and when.</p>".gsub(/<\/?[^>]*>/, '')
结果
Subject Subject is the who, what, where, why and when.
然而我需要
Subject is the who, what, where, why and when.
我正在使用Rails插件Loofah来清理用户输入,这很有用;实际上我可以定义一个擦除器来执行此操作,但似乎正则表达式对于这个简单的操作就足够了。
提前感谢任何建议。
答案 0 :(得分:1)
使用多个正则表达式:
"<h2>Subject</h2><p>Subject is the who, what, where, why and when.</p>".
gsub(/<h\d>[^>]*>/,'').
gsub(/<img[^>]*>/,'').
gsub(/<\/?[^>]*>/, '')
但是应该注意到,你正在达到regexp在处理html时可以处理的复杂性的极限。如果你需要做更复杂的事情(比如根据类名等删除)那么你应该真的使用html解析器。
答案 1 :(得分:0)
尝试:
myline = line.gsub!(/(<[^>]*>)|\n|\t/s) {" "}