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
然后是任意八位数字$
- 字符串结束。
推荐阅读
- authentication - 如何根据远程 Active Directory 凭据自动对公共网站的用户进行身份验证
- apache-spark - Spark迭代逻辑将按日期过滤的数据集写入镶木地板格式失败OOM
- dataframe - Julia Dataframe group by 在另一个 group by
- javascript - React 组件不使用“mapStateToProps”从减速器读取状态
- javascript - 使用javascript只创建一个按钮?
- javascript - React / Redux:登录后标题不会重新加载
- javascript - 如何创建多个 monaco javascript 编辑器,使它们不共享全局命名空间?
- python - 在 Python 中弹出不同的列表时,类实例变量会减少
- android - 如何将 Firebase Crashlytics 连接到 Android 应用
- r - 如何将行名分配给 Shiny 中的反应性数据框?