[C#] 使用 Regex.Match 從 String 中提出英文或數字

我們該如何從一個字串分離英文或是數字呢?
舉例來說:”ABC123″ -> “123” 或是 “ABC”
這邊的方法是運用 Regex.Match 來達到我們要的效果。

程式碼

要先 using 下的程式碼

using System.Text.RegularExpressions;
//使用方法
Regex.Match("String", @"正規表示式").ToString();
//只提出字串最前面或最後面的英文
Regex.Match(String, @"[A-Z]+").ToString();

//只提出字串最前面或最後面的數字
Regex.Match(String, @"[\d_]+").ToString();

//其他規則
Regex.Match("123ABC456DEF", @"[A-Z]+[0-9]+").ToString(); //Output:"ABC456"
Regex.Match("123ABC456DeF", @"[0-9A-Z]+").ToString();//Output:"123ABC456D"
Regex.Match("123ABC456DeF", @"[0-9A-Za-z]+").ToString();//Output:"123ABC456DeF"


輸出規則說明

我們可以運用監看式來看到不同的字串所得到的結果都有一定的規律。

正規表示式

[abc]: 字元集合
[^a-z]: 非a-z
\d :  數字
\D :  非數字
\s : 一個空白字元
\S:  非空白字元
\w:  單詞字元(a-z,A-Z,0-9,_)
\W:  非單詞字元

如果想要知道更多更詳細的正規表示式,可以參考這邊資料:https://ppt.cc/fLnNIx

有話大聲說!