账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php 正则怎么写 嵌套匹配 外层出现0次或者1次的字符串,需要的是内层的数据
    40
    0

    正则匹配这样一段网页

    <div class="details-message-number">
        <span class="c-blue">45</span>
        个站点安装
                 &nbsp; &nbsp;
             <span class="c-blue">
                 43         </span>
             个站点付费安装
        </div>
    

    其中需要的是45个站点安装的“45”,和43个站点付费安装的“43”,如果没有付费站点安装,代码是这样的

    <div class="details-message-number">
        <span class="c-blue">180</span>
        个站点安装
        </div>
    

    43那一段就没了
    我的匹配规则是这样

    $p = '/<div class="details-message-number">(?:[\s\S]*?)class="c-blue">(?P<install_numbers>[\s\S]*?)<\/span>(?:[\s\S]*?)个站点安装(?:[\s\S]*?)(?:<span class="c-blue">(?P<install_numbers_pay>[\s\S]*?)<\/span>)?/';
    

    不加最后的问号“?”,则没有付费站点安装的情况匹配结果为空;如果加上问号,有或者没有付费站点安装匹配结果不为空,但是install_numbers_pay字段没有值

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部