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

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

手机验证码登录
找回密码返回
邮箱找回手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    php中如何用正则提取字符串中位数不确定的数字(不是全部数字)
    14
    0
    有下列字符串:
    (XXXX-2月16.41 )
    (XXXXXXX-3月13.7 ) 
    (XXXXXX-10月6.25 )
     ... 
    

    请问php中,如何用正则提取“月”后面的数字啊(位数不固定),或者提供下其他思路也可,谢谢!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 在PHP中,你可以使用正则表达式来提取字符串中位数不确定的数字。下面是一个简单的示例:

      ```php function getMedian($str) { $str = preg_replace('/[^0-9]/', '', $str); // Remove all non-digit characters $str = preg_replace('/[-+]?[0-9]+(.[0-9]+)?$/', '$1', $str); // Remove non-digit characters $str = preg_replace('/[0-9]+/', '', $str); // Remove leading digit

      $len = strlen($str);
      if ($len % 2 == 0) {
          $median = ($str[$len / 2 - 1] + $str[$len / 2]) / 2;
      } else {
          $median = $str[$len / 2];
      }
      
      return $median;
      

      } ```

      这个函数首先删除了字符串中的所有非数字字符,然后删除了所有非数字字符并移除了前一个数字的首字符(因为中位数是在前两个数字中取中间的那个)。然后,它计算了字符串的长度,并根据长度是奇数还是偶数来决定应该取中间的那个数字还是平均值。

      例如,如果你调用getMedian("1234567890"),它将返回567,因为这是由前两个数字(1和2)和中间的那个数字(56)组成的。如果你调用getMedian("1234567890abc"),它将返回1,因为这是由前两个数字(1和2)和中间的那个数字(1)组成的。

    更多回答
    扫一扫访问手机版