【问题标题】:Remove blockquotes from string? [duplicate]从字符串中删除块引号? [复制]
【发布时间】:2013-01-31 14:03:45
【问题描述】:

我有一个这样的 php 字符串:

I am a 
  <blockquote> <strong>string</strong> 
    <blockquote> with lot of</blockquote>
  in <a href="#">it</a>
  </blockquote>
hiya!

我需要删除所有块引用以将其转换为:

I am a
hiya!

我认为正则表达式可能很有用,但我在 stackoverflow 和谷歌上都找不到任何东西,而且我不知道如何自己写。

谁能告诉我如何使用 php?

(我找到了这个,但不是正则表达式,我不知道它是否也可以将 html 删除到元素中。 Using PHP to remove a html element from a string)

【问题讨论】:

  • @deceze 你是说 simple_html_dom 之类的吗?
  • take a look here 并阅读第一个答案:)
  • th̘ë͖̉͠p̯͍̭o̚n̚y̡h̸̡̪̯ͨ͊̽̅̾ȩ̸̡̬̩̪̯̾͛ͪ̈ͨ͊̽̅̾͘ȩ̶̶̷̧̨̧̨̬̩̹̭̯̹̭̯̙̝͖̾͛ͪ̈ͧ̾ͬͧ̾ͬͭ̏ͥͮͮ͘͟͏̮̪̝͍m̖͊̒ͪͩͬ̚̚͜ȇ̴̟̟͙̞ͩ͌͝s̨̥̫͎̭ͯ̿̔(但是你得到一个+不坚持像大多数这些问题的正则表达式)) span>
  • 好的,谢谢,我会用的。

标签: php regex string


【解决方案1】:

试试这个

 $out=preg_replace("~<blockquote(.*?)>(.*)</blockquote>~si","",' '.$str.' ');

【讨论】:

  • 谢谢,它有效,但我不知道其他告诉我使用HTML解析器的用户是否正确,即使我的字符串是由Markdown生成的,所以没有特殊的HTML标签和错误...
  • 请记住,如果您有多个未嵌套的块引用块,则此正则表达式将不起作用,因为这使用了贪婪匹配 .*。您可以使用非贪婪匹配.*?,但它不适用于嵌套块引用。总而言之,如果您希望它在所有条件下工作,我认为正则表达式在这里不是很好的解决方案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-12
相关资源
最近更新 更多