什么是正則運算式 ?
正則運算式是一種被用于從文本中檢索符合某些特定模式的文本,
元字符
| 元字符 | 描述 |
|---|---|
| . | 匹配除換行符以外的任意字符, |
| [ ] | 字符類,匹配方括號中包含的任意字符, |
| [^ ] | 否定字符類,匹配方括號中不包含的任意字符 |
| * | 匹配前面的子運算式零次或多次 |
| + | 匹配前面的子運算式一次或多次 |
| ? | 匹配前面的子運算式零次或一次,或指明一個非貪婪限定符, |
| {n,m} | 花括號,匹配前面字符至少 n 次,但是不超過 m 次, |
| (xyz) | 字符組,按照確切的順序匹配字符 xyz, |
| | | 分支結構,匹配符號之前的字符或后面的字符, |
| \ | 轉義符,它可以還原元字符原來的含義,允許你匹配保留字符 [ ] ( ) { } . * + ? ^ $ \ | |
| ^ | 匹配行的開始 |
| $ | 匹配行的結束 |
簡寫字符集
| 簡寫 | 描述 |
|---|---|
| . | 匹配除換行符以外的任意字符 |
| \w | 匹配所有字母和數字的字符:[a-zA-Z0-9_] |
| \W | 匹配非字母和數字的字符:[^\w] |
| \d | 匹配數字:[0-9] |
| \D | 匹配非數字:[^\d] |
| \s | 匹配空格符:[\t\n\f\r\p{Z}] |
| \S | 匹配非空格符:[^\s] |
斷言
| 符號 | 描述 |
|---|---|
| ?= | 正向先行斷言 |
| ?! | 負向先行斷言 |
| ?<= | 正向后行斷言 |
| ?<! | 負向后行斷言 |
修飾符
| 標記 | 描述 |
|---|---|
| i | 不區分大小寫:將匹配設定為不區分大小寫, |
| g | 全域搜索:搜索整個輸入字串中的所有匹配, |
| m | 多行匹配:會匹配輸入字串每一行, |
常用正則運算式
- 正整數:
^\d+$ - 負整數:
^-\d+$ - 電話號碼:
^+?[\d\s]{3,}$ - 電話代碼:
^+?[\d\s]+(?[\d\s]{10,}$ - 整數:
^-?\d+$ - 用戶名:
^[\w\d_.]{4,16}$ - 字母數字字符:
^[a-zA-Z0-9]*$ - 帶空格的字母數字字符:
^[a-zA-Z0-9 ]*$ - 密碼:
^(?=^.{6,}$)((?=.*[A-Za-z0-9])(?=.*[A-Z])(?=.*[a-z]))^.*$ - 電子郵件:
^([a-zA-Z0-9._%-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4})*$ - IPv4 地址:
^((?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))*$ - 小寫字母:
^([a-z])*$ - 大寫字母:
^([A-Z])*$ - 網址:
^(((http|https|ftp):\/\/)?([[a-zA-Z0-9]\-\.])+(\.)([[a-zA-Z0-9]]){2,4}([[a-zA-Z0-9]\/+=%&_\.~?\-]*))*$ - VISA 信用卡號碼:
^(4[0-9]{12}(?:[0-9]{3})?)*$ - 日期(MM/DD/YYYY):
^(0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])[- /.](19|20)?[0-9]{2}$ - 日期(YYYY/MM/DD):
^(19|20)?[0-9]{2}[- /.](0?[1-9]|1[012])[- /.](0?[1-9]|[12][0-9]|3[01])$ - 萬事達信用卡號碼:
^(5[1-5][0-9]{14})*$
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/261002.html
標籤:其他
