[英]mySQL regex_replace remove all beginning numbers from mixed input
[英]REGEX_REPLACE not matching all chars from the beginning to the first occurrence of a 5 digits word
我在 Mysql 表中有這條記錄:
ADDRESS
----------------------------------
sdasd 4354 ciao 12345 sdsdsa asfds
我想匹配從開頭到第一次出現的 5 位數單詞的所有字符,包括它。 在這種情況下,使用 REGEXP_REPLACE,我想刪除匹配的 substring 並返回sdsdsa asfds
。
我試圖做的是:
SELECT REGEXP_REPLACE(ADDRESS, '^.+\b\d{5}\b.','') FROM `mytable`
正則表達式似乎可以在這個片段中對其進行測試,我不明白為什么 Mysql 不會。
MySQL 支持不支持 PERL 等屬性的 POSIX 正則表達式,例如\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 個或多個空格(制表符或空格)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.