douzhaolu4839 2014-04-29 20:45
浏览 426
已采纳

从字符串中提取多个匹配项

I'd like to extract multiple strings from a larger string.

The following is an error returned from the Google AdWords API. This particular example has two quoted instances following trigger:, but there could be several.

What would be the best way of extracting x amount of quoted instances from the larger string and saving them in an array?

Is there a PHP function available or should I use implode and a loop?

Any ideas would be appreciated, I'm happy to hack away at the code, just need some pointers.

Many thanks

AdGroup update failed: [AdGroupServiceError.DUPLICATE_ADGROUP_NAME @ operations[6].operand.name; trigger:'prince2 training west yorkshire', AdGroupServiceError.DUPLICATE_ADGROUP_NAME @ operations[8].operand.name; trigger:'prince ii training and exam']

  • 写回答

1条回答 默认 最新

  • duansha7453 2014-04-29 20:51
    关注

    This is how you can do

    $str = "AdGroup update failed: [AdGroupServiceError.DUPLICATE_ADGROUP_NAME @ operations[6].operand.name; trigger:'prince2 training west yorkshire', AdGroupServiceError.DUPLICATE_ADGROUP_NAME @ operations[8].operand.name; trigger:'prince ii training and exam']";
    
    preg_match_all("/'(.*?)'/im",$str,$match);
    
    print_r($match[1]);
    

    More specifically if its always after trigger: you can use the following

    preg_match_all("/trigger:'(.*?)'/im",$str,$match);
    

    Output ::

    Array
    (
        [0] => prince2 training west yorkshire
        [1] => prince ii training and exam
    )
    

    Explanation

    /'(.*?)'/im
        ' matches the character ' literally
        1st Capturing group (.*?)
            .*? matches any character (except newline)
                Quantifier: Between zero and unlimited times, as few times as possible, expanding as needed [lazy]
        ' matches the character ' literally
        i modifier: insensitive. Case insensitive match (ignores case of [a-zA-Z])
        m modifier: multi-line. Causes ^ and $ to match the begin/end of each line (not only begin/end of strin
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 求解vmware的网络模式问题
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳
  • ¥15 springboot 3.0 实现Security 6.x版本集成
  • ¥15 PHP-8.1 镜像无法用dockerfile里的CMD命令启动 只能进入容器启动,如何解决?(操作系统-ubuntu)
  • ¥30 请帮我解决一下下面六个代码
  • ¥15 关于资源监视工具的e-care有知道的嘛
  • ¥35 MIMO天线稀疏阵列排布问题
  • ¥60 用visual studio编写程序,利用间接平差求解水准网
  • ¥15 Llama如何调用shell或者Python
  • ¥20 谁能帮我挨个解读这个php语言编的代码什么意思?