PHP从正则表达式获取数组

 雨舒紫_586 发布于 2023-02-13 10:08

我有字符串

$content = "Some content some content
[images ids="10,11,20,30,40"]
Some content";

我想从中删除[images ids="10,11,20,30,40"]部分并获取id作为phparray(10,11,20,30,40)

正则表达式有可能吗?

1 个回答
  • 你可以用这个:

    $txt = <<<LOD
    Some content some content
    [images ids="10,11,20,30,40"]
    Some content
    LOD;
    
    $result = array();
    
    $txt = preg_replace_callback('~(?:\[images ids="|\G(?<!^))([0-9]+)(?:,|"])~',
        function ($m) use (&$result) { $result[] = $m[1]; }, $txt);
    
    echo $txt . '<br>' . print_r($result, true);
    

    \G锚可以在这种情况下是非常有用的,因为它是一种锚,这意味着"在字符串的开头或连续的先例匹配".

    但是,模式中没有任何内容检查是否有最后一个数字"].如果需要这样做,则必须向模式添加前瞻:

    ~(?:\[images ids="|\G(?<!^))([0-9]+)(?=(?:,[0-9]+)*"])(?:,|"])~
    

    2023-02-13 10:12 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有