Ruby Regex 捕获两个字符串之间的所有内容(包括)

标签 ruby regex string html-sanitizing

我正在尝试清理一些 HTML,只删除一个标签(我真的很想避免使用 nokogiri 等)。所以出现了以下字符串,我想删除:

<div class="the_class>Some junk here that's different every time</div>

这在我的字符串中只出现了一次,我想找到一种方法将其删除。我试过想出一个正则表达式来捕获所有内容,但我找不到一个有效的。

我试过了 /<div class="the_class">(.*)<\/div>/m这行得通,但它也会匹配并包括任何进一步的 </div>文档中的标签,我不想要。

关于如何解决这个问题有什么想法吗?

最佳答案

我相信您正在寻找一个非贪婪的正则表达式,如下所示:

/<div class="the_class">(.*?)<\/div>/m

注意添加的 ?。现在,捕获组将捕获尽可能少的(非贪婪的),而不是尽可能多的(贪婪的)。

关于Ruby Regex 捕获两个字符串之间的所有内容(包括),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13446059/

相关文章:

javascript - javascript 中的正则表达式匹配可以匹配等于运算符后面的任何单词吗?

ruby-on-rails - 如何在rails中制作可变路线

ruby-on-rails - 如何对 JSON Controller 进行单元测试?

regex - 让用户输入自定义正则表达式模式是否安全?

C - 如何比较2个字符串的索引?

regex - 如何在保持大写的同时替换文本?

string - Go中子字符串的字符位置

ruby-on-rails - Rails AJAX 表单在验证失败后不重新填充字段

ruby - 在不破坏 anchor 和别名的情况下读写 YAML 文件?

asp.net - 如何删除所有标签并获得纯文本?