正則表達式,又稱規則表達式。(英語:Regular Expression,在代碼中常簡寫爲regex、regexp或RE),計算機科學的一個概念。正則表達式通常被用來檢索、替換那些符合某個模式(規則)的文本。
概念:
正則表達式是對字符串操作的一種邏輯公式,就是用事先定義好的一些特定字符、及這些特定字符的組合,組成一個“規則字符串”,這個“規則字符串”用來表達對字符串的一種過濾邏輯。
一. 基礎
1. 基礎語法:"^([]{})([]{})([]{})$"
- 正則字符串 = “開始([包含內容]{長度})([包含內容]{長度})([包含內容]{長度})結束”
2. 常用運算符與表達式:
- ^ :開始
- () :域段
- [] : 包含,默認是一個字符長度
- [^] : 不包含,默認是一個字符長度
- {n,m} : 匹配長度
- . : 任何單個字符(. 字符點)
- | : 或
- \ : 轉義
- $ : 結尾
- [A-Z] : 26個大寫字母
- [a-z] : 26個小寫字母
- [0-9] : 0至9數字
- [A-Za-z0-9] : 26個大寫字母、26個小寫字母和0至9數字
- ,: 分割
3. 等價:等價是等同於的意思,表示同樣的功能。
- ?,*,+,\d,\w 都是等價字符
- ? : 等價於匹配長度{0,1}
- *: 等價於匹配長度{0,}
- +: 等價於匹配長度{1,}
- \d : 等價於[0-9]
- \D : 等價於[^0-9]
- \w : 等價於[A-Za-z_0-9]
- \W : 等價於[^A-Za-z_0-9]。
二. eg
- ^(\w)$ : 等同於^([A-Za-z_0-9])$; 一個字母、數字或下劃線。
- ^(\w{6,12})$ : 字母、數字或下劃線組成的6-12位字符串;eg:abcdefgHIJ,12345678,______,adcd_123。
- ^([a-zA-B])(\w{6,11})$ :字母開頭,字母、數字或下劃線組成的6-12位字符串,eg: A_1234567890,abc123_9527b。
- ^([ ^a-zA-B])(\w{6,11})$ : 不能字母開頭,字母、數字或下劃線組成的6-12位字符串,eg: _1234567890,2c123_9527b。
- ^(?=[a-zA-B])(\w{6,12})$ :字母開頭,字母、數字或下劃線組成的6-12位字符串,eg: A_1234567890,abc123_9527b。
- ^(?=[a-zA-B])(\w{6,12})$ :不能字母開頭,字母、數字或下劃線組成的6-12位字符串,eg: 2_1234567890,2bc123_9527b。
- demo([E,F])(\w{6,11})$ :等同於demo(E|F)(\w{6,11})$。 demo + E 或 F,再加 6到11位字母、數字或下劃線組成字符串,eg: demoE12345678。
三. 符號