微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将 PHP 兼容的正则表达式转换为 MySql 兼容的正则表达式 - 提取澳大利亚手机号码

如何解决将 PHP 兼容的正则表达式转换为 MySql 兼容的正则表达式 - 提取澳大利亚手机号码

我有一个PHP 代码中运行良好的正则表达式。当我将它与 MysqL 查询一起使用时,它会引发错误

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

请帮我把它转换成 MysqL 兼容的正则表达式。

解决方法

您可以使用以下查询在 MySQL 中提取澳大利亚手机号码(以 4、+61、61、04 等开头)

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

详情

  • ^ - 字符串的开始
  • ( - 第一组开始:
    • ([+]|0{0,2}) - 第 2 组匹配 + 或零、一个或两个零
    • 61 - 61 字符串
    • ([[:space:]]*-[[:space:]]*)? - 可选的第 3 组,匹配由零个或多个空格括起来的连字符
  • | - 或
    • 0? - 一个可选的零
  • )? - 第一个组的结尾,由于 ?
  • 是可选的
  • 4[0-9]{8} - 4 然后是任意八位数字
  • $ - 字符串结束。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。