gpt4 book ai didi

MySQL - 查询返回值匹配正则表达式模式

转载 作者:行者123 更新时间:2023-11-29 10:52:51 25 4
gpt4 key购买 nike

我在 MySQL 数据库中存储了包含自由格式文本字符串的大型表。在每个字符串中,我必须找到三个专门格式化的子字符串。这个问题看起来非常适合 MySQL REGEXP 模式匹配。

我知道 MySQl REGEXP 运算符仅返回 True 或 False。而且,因为我需要处理大表,所以我需要在 MySQL 中实现目标,而不涉及 PHP 或任何其他服务器端语言。

源数据示例:

FirstEntry_somestring_202320047A_210991957_700443250_Lieferadresse:_modified string c/o Logistics, some address and another text

SecondEntry_hereisanothertext_210991957_text_202320047A_and_700443250_another text which does not have any predefined structure

ThirdEntry_700443250_210991957_202320047A_Lieferadresse:_here some address, Logistics, and some another text with address.

FourthEntry some very long text before numbers__202320047A-700443250-210991957-Lieferadresse:, another text with address and company name. None of this text has predefined structure

上面的示例有四个字符串作为 TEXT 数据类型存储在 MySQL 表中。它们没有任何特定的结构。但是我知道,每个记录中的某个位置必须是三个自由分隔的数字,但它们具有特定的格式:

  1. 正则表达式格式:'\d{3}(30|31|32)\d{4}[A-Z])'
  2. 正则表达式格式:'(\d{3}(99)\d{4})')
  3. 正则表达式格式:'((700)\d{6})'

您能帮我如何获取与上面文本中的正则表达式模式匹配的子字符串吗?

服务器运行于:

  • Windows 操作系统
  • IIS 7
  • Windows 版 MySQL
  • PHP
  • ...

谢谢!

最佳答案

MariaDB 10.0.5(从 2013 年开始)实际上与 MySQL 相同,但它包含全套 REGEXP。它还具有REGEXP_REPLACE()

参见https://mariadb.com/kb/en/mariadb/pcre/

关于MySQL - 查询返回值匹配正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43437769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com