替换bbcode标签中的反斜杠和引号 php

问题描述 投票:0回答:1

这个字符串出现在 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]  

但我不知道如何修剪他们,并把他们回到字符串。

我做错了什么?

php regex double-quotes stripslashes
1个回答
0
投票

使用prag replece或与

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

与其他

演示

© www.soinside.com 2019 - 2024. All rights reserved.