簡體   English   中英

mySQL regex_replace 從混合輸入中刪除所有開頭的數字

[英]mySQL regex_replace remove all beginning numbers from mixed input

我需要一個正則表達式模式來刪除字段開頭的所有數字輸入,該字段在第一個字母字符處停止,並留下字母字符后面的任何剩余數字。

這是最簡單的測試用例。

CREATE TABLE tempdemo (tdfields varchar(10));
INSERT INTO tempdemo (tdfields) VALUES ('1'), ('11'), ('111'), ('a'), ('ab'), ('abc'), ('1a'), ('a1');

SELECT REGEXP_REPLACE(tdfields, '^[0-9]*$', '') FROM tempdemo;

從代碼中,我想要以下 output: :blank:, :blank:, :blank:, a, ab, abc, a, a1

現在,正則表達式模式留下 '1a' 而不是 'a',這是不可取的。

任何幫助將不勝感激。 謝謝。

您可以使用

CREATE TABLE tempdemo (tdfields varchar(10));
INSERT INTO tempdemo (tdfields) VALUES ('1'), ('11'), ('111'), ('a'), ('ab'), ('abc'), ('1a'), ('a1');

SELECT REGEXP_REPLACE(tdfields, '^[0-9]+', '') FROM tempdemo;

它將從字符串的開頭刪除一個或多個數字

更多詳情

  • ^ - 字符串的開頭
  • [0-9]+ - 一位或多位數字。

$匹配字符串 position 的開頭。

請注意,這里的^[0-9]*不是一個好的模式,因為它匹配任何字符串,並且+變體僅在必要時匹配,當字符串開頭有數字時。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM