You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

将提取澳大利亚手机号码的PHP兼容正则转换为MySQL兼容格式

澳大利亚手机号正则的MySQL兼容转换方案

原正则报错原因

MySQL 8.0之前的版本不支持PCRE的非捕获组(?:)语法,同时\d元字符在部分低版本MySQL中兼容性不佳,因此需要对原PHP正则做适配修改。

转换后兼容MySQL的正则

直接在REGEXP操作符中使用的写法:

^((\+|0{0,2})61(\s*[-]\s*)?|0?)?4[0-9]{8}$

如果是在SQL语句的字符串场景中使用,需要对反斜杠做转义,写法如下:

'^((\\+|0{0,2})61(\\s*[-]\\s*)?|0?)?4[0-9]{8}$'

兼容的号码格式

  • 10位本地格式:如0412345678
  • 国际带+号格式:如+61412345678
  • 国际双零前缀格式:如0061412345678
  • 带空格/短横线分隔的格式:如+61-412345678、+61 - 412345678

使用示例

查询手机号符合规则的用户记录:

SELECT * FROM 表名 WHERE 手机号字段 REGEXP '^((\\+|0{0,2})61(\\s*[-]\\s*)?|0?)?4[0-9]{8}$';

内容的提问来源于stack exchange,提问作者Irfan Momin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.10 13:27:01