gpt4 book ai didi

mysql - REGEX_REPLACE 不匹配从开始到第一次出现 5 位数字单词的所有字符

转载 作者:行者123 更新时间:2023-11-29 07:17:31 25 4
gpt4 key购买 nike

我在 Mysql 表中有这条记录:

ADDRESS
----------------------------------
sdasd 4354 ciao 12345 sdsdsa asfds

我想匹配从开头到第一次出现 5 位数字单词的所有字符,包括它。在这种情况下,使用 REGEXP_REPLACE,我想删除匹配的子字符串并返回 sdsdsa asfds

我尝试做的是:

SELECT REGEXP_REPLACE(ADDRESS, '^.+\b\d{5}\b.','') FROM `mytable`

正则表达式似乎可以在这个 snippet 中测试它我不明白为什么 Mysql 不会。

最佳答案

MySQL supports POSIX regex它不支持类似 PERL 的属性,例如\b , \d等等

这个正则表达式应该适合你:

SELECT REGEXP_REPLACE
('sdasd 4354 ciao 12345 sdsdsa asfds', '^.+[[:<:]][0-9]{5}[[:blank:]]+', '') as val;

+--------------+
| val |
+--------------+
| sdsdsa asfds |
+--------------+

正则表达式详细信息:

  • ^.+ : 在开头匹配 1 个或多个任意字符(贪心)
  • [[:<:]] : 匹配单词边界(零宽度)
  • [0-9]{5} : 恰好匹配 5 位数字
  • [[:blank:]]+ : 匹配 1 个或多个空格(制表符或空格)

关于mysql - REGEX_REPLACE 不匹配从开始到第一次出现 5 位数字单词的所有字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58461601/

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