【问题标题】:Regular expression for matching words between <blockquote> & </blockquote><blockquote> 和 </blockquote> 之间匹配单词的正则表达式
【发布时间】:2010-04-20 01:11:24
【问题描述】:

基本上我想去掉大引号之间的单词文档。我是一个正则表达式新手,即使使用了 rubular,我也没有更接近答案。

感谢任何帮助。

【问题讨论】:

    标签: ruby regex


    【解决方案1】:

    使用 HTML 解析器并忘记正则表达式。正则表达式无法正确处理 HTML。

    doc = Nokogiri::HTML(your_html)
    doc.xpath("//blockquote").remove
    

    发件人:Strip text from HTML document using Ruby

    如果您环顾四周,还有更多关于如何使用 Nokogiri 和 XPath 的示例。

    【讨论】:

      【解决方案2】:

      原始示例:

      /([^/

      【讨论】:

      • &lt;blockquote&gt;Some &lt;b&gt;bold text&lt;/b&gt;&lt;/blockquote&gt; 失败。正如我所说:正则表达式 在技术上无法正确处理 HTML。
      【解决方案3】:

      示例字符串:

      你好世界

      在 rubular 中键入以下正则表达式

      (.+?)

      或更通用的:

      <.>(.+?)*?>

      希望对你有帮助!

      【讨论】:

      • &lt;blockquote&gt;Some &lt;blockquote&gt;quoted text&lt;/blockquote&gt; within a quote.&lt;/blockquote&gt; 失败。
      • 如果我们只是在谈论 ruby​​:resultarray = htmlstring.split(/<.>/)。 split() 方法将忽略正则表达式匹配并保留匹配之间的文本。仅供参考:scan() 方法将执行与此相反的操作。如果您是新手,我建议您花一些时间学习正则表达式,它与语言无关,可以很好地为您服务。
      • 如果这个评论是给我的:不,就正则表达式而言,我不是一个“新手”。 ;) 和 htmlstring.split(/&lt;.*?&gt;/) 失败 &lt;b title="HTML is &gt; than RegEx"&gt;Don't do HTML with RegEx&lt;/b&gt;
      猜你喜欢
      • 2021-09-21
      • 1970-01-01
      • 2017-12-24
      • 1970-01-01
      • 1970-01-01
      • 2020-10-18
      • 1970-01-01
      • 2014-03-14
      相关资源
      最近更新 更多