【正則表示式】-基礎
阿新 • • 發佈:2019-01-12
前言 |
之前總是能看到好多這樣的程式碼 ^([0-9]\d{16}[09Xx]|[1-9]\d{14})$
斜槓加數字加字母,看起來都很頭疼。於是就上網找資料瞭解了一下,也算是一個小小的入門。
What |
正則表示式:又稱規則表示式。(英語:Regular Expression,在程式碼中常簡寫為regex、regexp或RE),電腦科學的一個概念。正則表示式通常被用來檢索、替換那些符合某個模式(規則)的文字。
正則表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成一個“規則字串”,這個“規則字串”用來表達對字串的一種過濾邏輯。
常用語法 |
- . 小數點,可能有點看不清楚。它表示任意的單個字元
- [ ] 字元組,表示在字元組中羅列出來的字元,任意取單個
- | 表示 “或”的意思,“或” 的優先順序最低
- * 表示限定前面的表示式出現0此或者多次
- + 表示一次或者多次。至少得出現一次
- ? 表示可出現0次或者1次
- [0-9]{4,} 表示最少出現4次,最多不限
- [0-9]{4,9} 表示最少出現4次,最多出現9次
- ^ 表示開始 ^h 表示以h開頭
- $ 表示結尾 hh$ 表示以hh結尾
- \d 表示0-9
- \D
- \w 表示[a-z0-9A-Z]
- \W 表示除了[a-z0-9A-Z]以為
- \s 表示不可見的字元 比如空格
- \S 表示除了不可見的字元以外的字元
Regex常用方法 |
Regex.IsMatch(); //用來判斷給定的字串是否匹配某個正則表示式 Regex.Match(); //用來從給定的字串中按照正則表示式的要求提取一個匹配的字串 Regex.Matches(); //用來從給定的字串中按照正則表示式的要求提取所有匹配的字串 Regex.Replace(): //替換所有正則表示式匹配的字串為另外一個字串
例子 |
//判斷是否在10-25之間,包含10和25
while (true)
{
Console.WriteLine("請輸入一個10(含)-25(含)之間的任何一個數字");
string n = Console.ReadLine();
bool b = Regex.IsMatch(n, "^(1[0-9]|2[0-5])$");
Console.WriteLine(b);
}
//判斷一個身份證是否正確
//如果15位都是數字
//如果18位,前17位是數字,後一位可能是數字也可能是x
while (true)
{
Console.WriteLine("輸入身份證號:");
string idNo = Console.ReadLine();
Console.WriteLine(Regex.IsMatch(idNo, @"^([1-9]\d{16}[0-9Xx]|[1-9]\d{14})$"));
}
//提取數字
string msg = "大210家57好,132好314一9嗨91021喲244";
MatchCollection matches = Regex.Matches(msg, "[0-9]+");
foreach (Match item in matches)
{
Console.WriteLine(item);
}
Console.ReadKey();
總結 |
正則表示式就先總結到這,紙上談兵是沒有用的,要去實踐,獲取計算機思維。