douwen3198 2014-03-10 13:09
浏览 12
已采纳

替换用户代理中的所有“.net clr”

I am learning regex and I am testing some string lookup/replacement on the user agent.

I have few user agent with:

  • .NET CLR 11432
  • .NET CLR 2.0.2648
  • .NET CLR 1.0.1369
  • .NET CLR 2.0.90283

I can replace the ".net clr \d" but it does no work properly.

  $ua = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 4.1; .NET CLR 12858)';

  $r = preg_replace('/.NET CLR \d/i', '', $ua);

  var_dump($r);

and i get:

Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 4.1; 2858; .0.6143)

clearly i am missing something, but what?

thanks

  • 写回答

2条回答 默认 最新

  • dongle7882 2014-03-10 13:11
    关注

    Your regex doesn't adhere to the decimal point of the version number, that's why it's matching everything up until the .. Change you regex to this:

    $r = preg_replace('/\.NET CLR [\d\.]+/i', '', $ua);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥20 sim800c模块 at指令及平台
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器
  • ¥15 如何用Labview在myRIO上做LCD显示?(语言-开发语言)
  • ¥15 Vue3地图和异步函数使用
  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题