正規表示式基礎與常用驗證表示式
2022-06-14 22:01:36
一、正則元字元
是一些在正規表示式中有特殊用途、不代表它本身字元意義的一組字元。
1、 字元元字元
- […] :匹配列表中的任意字元
- [^…] :匹配不在列表中的任意字元
- . :匹配除了回車和換行符之外的任何字元
- w :元符號,相當於[a-zA-Z0-9_],匹配任何字母、數位、下劃線字元,這樣的字元也稱為單詞字元
- W :元符號,相當於[^a-zA-Z0-9_],匹配除了字母、數位、下劃線字元之外的任何字元
- d :元符號,相當於[0-9],匹配任何單個的數位字元
- D :元符號,相當於[^0-9],匹配除了數位之外的任何單個字元
- s :元符號,匹配空白字元,空白字元是指空格、Tab字元和回車換行符
- S :元字元,匹配任何非空白字元
2、重複元字元(量詞)
- x? :匹配0個或1個x。
- x+ :匹配1個或多個x。
- x* :匹配0個或多個x。
- x{n} :匹配n個x。
- x{n,} :匹配n個或多個x。
- x{n,m} :匹配n到m個x。
3、定位元字元
- ^ :匹配必須出現在字串的開頭或行的開頭(開頭)
- $ :匹配必須出現在以下位置:字串結尾、字串結尾處的 n 之前或行的結尾。(結尾)
- b :匹配單詞的開始或結束
- B :匹配非單詞的開始或結束
- x(?=y) :正向肯定預查。只有在x後面跟上y時,才匹配x成功。(正向等=)
- x(?!y) :正向否定預查。只有在x後面不跟著y時,才匹配x成功。 (正向不等!)
- (?<=x)y:反向肯定預查。只有在y前面跟x時,才匹配y 成功。Javascript不支援。(反向等,為在正向等前加<)
- (?<!x)y: 反向否定預查。只有在y前面不跟x時,才匹配y 成功。Javascript不支援。(反向不等,為在正向等前加<)
4、分組和替換字元
- x|y :匹配x或y
- (sub) :反向參照,將子表示式sub作為一個整體處理,括號的作用相當於代數中括號的作用。並將捕獲的子匹配儲存在1,2,......和$1,$2,......中。例如:
/a(bc)+/
中,加號元字元作用在子表示式bc
上,它匹配abc、abcbc,但是不匹配a和ac - (?:sub) :分組子模式,但是不捕獲子模式。它的作用與(sub)類似,稱為無記憶匹配
- 1,2,3,... :在正規表示式中,分別包含與正規表示式中第一個反向參照、第二個反向參照、第三個反向參照...相匹配的子串
- $1,$2,$3,... :在替換中,分別包含與正規表示式中第一個反向參照、第二個反向參照。第三個反向參照...相匹配的子串
5、特殊字元
特殊字元是指那些不容易進行直接書面表達或不容易直接使用鍵盤輸入的字元。