我正在尝试清理一些 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/