MySQL 8.0及以上版本支持REGEXP_SUBSTR函数,用于提取匹配正则的子串。语法为REGEXP_SUBSTR(str, pattern, pos, occurrence, match_type),可指定起始位置和匹配次数。示例包括提取数字、邮箱、括号内容及特定前缀后的值,适用于文本清洗与数据提取场景。

MySQL 在 8.0 版本之后才引入了 REGEXP_SUBSTR 函数,用于从字符串中提取匹配正则表达式的子串。如果你使用的是 MySQL 8.0 或更高版本,就可以使用这个函数来实现灵活的文本提取。
1. 提取数字 从字符串中提取连续的数字:
SELECT REGEXP_SUBSTR('订单编号:12345,金额:678', '[0-9]+'); 结果:12345(提取第一个数字序列)2. 提取邮箱地址 假设字段包含一段文本,想提取其中的邮箱:
SELECT REGEXP_SUBSTR('联系方式:admin@example.com,电话:12345', '[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}'); 结果:admin@example.com3. 提取括号内的内容 提取圆括号中的文字:
SELECT REGEXP_SUBSTR('这是测试(内部内容)示例', '\([^)]+\)'); 结果:(内部内容) 若想去掉括号,可结合其他函数处理。4. 提取特定前缀后的值 比如提取 "ID:" 后面的数字:
SELECT REGEXP_SUBSTR('用户ID:98765,状态:激活', 'ID:[0-9]+'); 结果:ID:98765 进一步提取纯数字可写成:示例:跳过第一个数字,提取第二个:
SELECT REGEXP_SUBSTR('价格:100元,数量:5个', '[0-9]+', 1, 2); 结果:5基本上就这些。合理使用 REGEXP_SUBSTR 能大幅提升文本数据清洗和提取效率,特别是在日志分析、数据导入等场景中非常实用。
以上就是mysql中regexp_substr函数的使用的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号