【问题标题】:replace backslashes and quotation within bbcode tag php替换bbcode标签php中的反斜杠和引号
【发布时间】:2020-05-14 21:09:40
【问题描述】:

这个字符串出现在我的数据库中as is

  [font=\\\"Libre Franklin\\\", sans-serif]
  This is a \\\'title 1\\\' escaped slashes \\\"content\\\" 
  [/font][/b][/font]

  [font=\\\"Libre Franklin\\\", sans-serif]
  This is a \\\'title 2\\\' escaped slashes \\\"content\\\" 
  [/font][/b][/font]

  [font=\\\"Libre Franklin\\\", sans-serif]
  This is a \\\'title 3\\\' escaped slashes \\\"content\\\" 
  [/font][/b][/font]

我想从[font][/font] bbtag 中删除\\\",让它保持这样

  [font=Libre Franklin, sans-serif]
  This is a \\\'title\\\' escaped slashes \\\"content\\\" 
  [/font][/b][/font]

我也试过这个......但它检索......我不知道如何将它们放回字符串中

 if (preg_match_all("/\[font=(.*?)\]/",$string,$matches)) 
   {
 foreach($matches[0] as $values){
          echo  $values;
   }
    }

它检索

 [font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=\"Libre Franklin\", sans-serif][font=Georgia][font=Georgia][font=\"Libre Franklin\", sans-serif]  

但我不知道如何修剪它们并将它们放回字符串中。

做错了什么?

【问题讨论】:

  • 为什么是[font][/font][/font] seqancer
  • 我在另一个整个字符串中进行测试,其中[font][/font] bbtag 有时有双引号和反斜杠,......而在其他情况下则没有。
  • 使用 \G 锚来做这些
  • 我只是想从具有该特征的 bbtags 中删除那些引号和反斜杠,如何将 $match 值放回 $string?谢谢。
  • 你能给我举个例子吗?

标签: php regex double-quotes stripslashes


【解决方案1】:

使用 prag replece 或 with

'~(?:(?!^)\G|\[font=)[^\]]*?\K\\\\\\\\\\\"~'

没有其他

demo

【讨论】:

  • 好的,谢谢您的回答。怎么会在 preg_match_all foreach 中进行 preg 替换?
  • 我真的不懂你。
  • 有disese单词在hed中不清楚。有时还可以,其他不好
猜你喜欢
  • 1970-01-01
  • 2017-09-14
  • 2015-02-27
  • 1970-01-01
  • 2022-01-27
  • 1970-01-01
  • 1970-01-01
  • 2014-09-25
  • 2013-03-02
相关资源
最近更新 更多