douwo8358 2014-01-28 17:30
浏览 25
已采纳

删除空白子弹点(BBCode)

Ok so I'm trying to come up with a PHP method that removes blank bullet point lists that I'm doing.

Here is an example I have:

http://rubular.com/r/01ydqcWx3Q

But I can't seem to get it to only grab the [*] that are blank so I can remove them... This is grabbing the non-blank ones.. so I could put it in the $matches variable below:

preg_match('/\[\*\][A-z0-9 ]+/', $body, $matches);

But.. I want the $matches to consist of the blank ones so I can just remove them.. or if there is a way to grab everything but the matches to remove except for the [list]..

As you can see, it's grabbing the [ in the [/list] which is not what I want either. Some of them will have only two blank, three blank, one blank, or ... more...

Any help would be appreciated.

Thank you!

  • 写回答

2条回答 默认 最新

  • dongzhuonao8429 2014-01-28 17:34
    关注

    If you’d like to match [*] with a regex, you have to escape all three characters with backslashes because they are meta-characters. Next, you have to find out if [*] is immediately followed by a newline ( or ) or end of list ([/list]). Then replace it with an empty string.

    $body = "[list][*]Hydrogen
    [*]
    [*]Helium
    [*]Lithium
    [*]
    [*]
    [*]Beryllium
    [*]Boron
    [*]Carbon
    [*]Nitrogen
    [*]
    [*]Oxygen
    [*][/list]";
    $body = preg_replace("/\[\*\](?:?
    |(?=\[\/list\]))/", "", $body);
    print($body);
    

    The output will be:

    [list][*]Hydrogen
    [*]Helium
    [*]Lithium
    [*]Beryllium
    [*]Boron
    [*]Carbon
    [*]Nitrogen
    [*]Oxygen
    [/list]
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?
  • ¥15 win10权限管理,限制普通用户使用删除功能
  • ¥15 minnio内存占用过大,内存没被回收(Windows环境)
  • ¥65 抖音咸鱼付款链接转码支付宝
  • ¥15 ubuntu22.04上安装ursim-3.15.8.106339遇到的问题
  • ¥15 blast算法(相关搜索:数据库)
  • ¥15 请问有人会紧聚焦相关的matlab知识嘛?
  • ¥15 网络通信安全解决方案