正則表達式小結

正則表達式一種規則, 搜索匹配javascript

用途
拿php來舉例
preg_match -- 表單驗證
preg_replace -- 非法詞語過濾
拿javascript來舉例
能夠用現成的框架is.js
驗證郵箱
驗證手機號碼
驗證用戶名規則php

測試工具

測試工具不寫含界定符
http://regexpal.isbadguy.com/java

基本語法

界定符

  • 表示一個正則表達式的開始和結束
    例如, /[0-9]/正則表達式

界定符就是/, 不一樣的語言可能不一樣
也能夠用#[0-9]#框架

原子

不可見的原子

t n ...須要轉義的字符
工具

元字符

原子的篩選方式測試

  • | 匹配兩個或者多個分支選擇spa

  • [] 匹配方括號中的任意一個原子code


  • [^] 匹配除方括號中原子之外的任意字符regexp


原子的集合

  • . 匹配除了換行符以外的任意字符,即[ ^n]

  • d 匹配任意一個進制數字,即[0-9]

  • D 匹配任意一個非十進制數字,即[ ^0-9]

  • s 匹配一個不可見的原子, 即[fntrtv]

  • S 匹配一個可見的原子, 即[ ^fntrtv]

  • w 匹配任意一個數字,字母或者下劃線, 即[0-9a-zA-Z]

  • W 匹配任意一個非數字,字母或者下劃線, 即[ ^0-9a-zA-Z]

量詞

  • {n} 表示其前面的原子出現n次

  • {n,}表示其前面的原子至少出現n次

  • {n,m}表示其前面的原子至少出現n次,最多出現m次

  • * 匹配任意次,即{0,}

  • + 匹配屢次其以前的原子, 即{1,}

  • ? 匹配0次或者1次其以前的原子,{0,1}



邊界控制和模式單元

  • ^ 匹配字符串開始的位置

  • $ 匹配字符串結尾的位置

  • () 匹配其中的總體的一個原子



模式修正

貪婪匹配和朗多匹配

  • 貪婪匹配-匹配結果存在歧義取其長,默認

  • 懶惰匹配-匹配結果存在歧義取其短

常見的修正模式

  • U/u 懶惰/貪婪匹配

  • i 忽略英文字母大小寫

  • x 忽略空白

  • s 讓元字符'.'匹配包括換行符在內的全部字符

  • e 彩蛋

相關文章
相關標籤/搜索