dqwh1209 2016-05-19 18:47
浏览 112
已采纳

带有第n次出现的PHP正则表达式

Here's a string:

n%3A171717%2Cn%3A%747474%2Cn%3A555666%2Cn%3A1234567&bbn=555666

From this string how can I extract 1234567 ? Need a good logic / syntax.

I guess preg_match would be a better option than explode function in PHP.

It's about a PHP script that extracts data. The numbers can vary and the occurrence of numbers can vary as well only %2Cn%3A will always be there in front of the numbers.the end will always have a &bbn=anyNumber.

  • 写回答

2条回答 默认 最新

  • duanrong5167 2016-05-19 19:01
    关注

    That looks like part of an encoded URL so there's bound to be better ways to do it, but urldecoded() your string looks like:

    n:171717,n:t7474,n:555666,n:1234567&bbn=555666

    So:

    preg_match_all('/n:(\d+)/', urldecode($string), $matches);
    echo array_pop($matches[1]);
    

    Parenthesized matches are in $matches[1] so just array_pop() to get the last element.

    If &bbn= can be anywhere (except for at the beginning) then:

    preg_match('/n:(\d+)&bbn=/', urldecode($string), $matches);
    echo $matches[1]; 
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 目详情-五一模拟赛详情页
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?
  • ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
  • ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
  • ¥15 cmd cl 0x000007b
  • ¥20 BAPI_PR_CHANGE how to add account assignment information for service line