背景:正規表示式使用單個字串來描述、匹配一系列匹配某個句法規則的字串。通常我們使用正規表示式用作資訊的驗證。雖然正規表示式非常繁瑣,但是它的功能卻是非常的強大。學會之後會讓我們的專案中除了提高效率外,還會給我們帶來絕對的成就感。
正規表示式是一種描述字串結構的語法規則,是乙個特定的格式化模式,可以匹配,替換,擷取匹配的字串。乙個完整的正規表示式由兩部分構成,即元字元和文字字元。元字元就是具有特殊含義的字元,比如" * "和「 ? 」。文字字元就是普通的文字,如字母和數字等。正規表示式一般都放置在定界符「/」中間.
正規表示式的作用:
測試字串內的模式。
例如,可以測試輸入字串,以檢視字串內是否出現**號碼模式或信用卡號碼模式。這稱為資料驗證。
替換文字。
可以使用正規表示式來識別文件中的特定文字,完全刪除該文字或者用其他文字替換它。
基於模式匹配從字串中提取子字串。
可以查詢文件內或輸入域內特定的文字。
常用的元字元:
元字元的相關說明和分類
元字元 說明 舉例
字元類() 方括號內不區分大小寫 [tt][mm]
選擇字元(|) 該字元可以理解為「或」,與「」相同 [t|t][m|m]
連字元(-) 變數的命名規則是只能以字母和下劃線開頭 [a-za-z]
排除字元([^]) 匹配不符合命名規則的變數 [^a-za-z]
限定符(?*+[n,m]) 對於重複出現的字母和字串,可以使用限定符來實現匹配 gogle
點號字元(.) 匹配除換行符外的任意乙個字元
^s.t$
轉義字元(\) 正規表示式中的轉義字元(\)和php中的大同小異,都是將特殊字元轉義為普通字元 [0-9](,[0-9])
括號字元(()) 改變限定符的作用範圍 (thir|four)th
行定位符(^和$) 行定位符就是用來描述字串的邊界 ^tm
單詞定界符(\b,\b) 表示式tm可以對字串中任意位置出現的字串tm進行匹配 \btm\b
常用的正規表示式格式:
數字:1
$n位的數字:^\d$
至少n位的數字:^\d$
m-n位的數字:^\d$
零和非零開頭的數字:^(0|[1-9][0-9])$
非零開頭的最多帶兩位小數的數字:^([1-9][0-9])+(.[0-9])?$
帶1-2位小數的正數或負數:^(-)?\d+(.\d)$
正數、負數、和小數:^(-|+)?\d+(.\d+)?$
有兩位小數的正實數:2
+(.[0-9])?$
有1~3位小數的正實數:3
+(.[0-9])?$
非零的正整數:4
\d$ 或 ^([1-9][0-9])$ 或 ^+?[1-9][0-9]$
非零的負整數:^-[1-9]0-9"$ 或 ^-[1-9]\d$
非負整數:^\d+$ 或 5
\d*|0$
非正整數:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非負浮點數:^\d+(.\d+)?$ 或 6
\d*.\d*|0.\d*[1-9]\d*|0?.0+|0$
非正浮點數:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d*.\d*|0.\d*[1-9]\d*))|0?.0+|0$
正浮點數:7
\d*.\d*|0.\d*[1-9]\d*$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$
負浮點數:^-([1-9]\d*.\d*|0.\d*[1-9]\d*)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$
浮點數:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d*.\d*|0.\d*[1-9]\d*|0?.0+|0)$
漢字:8
$英文和數字:9
+$ 或 10
$長度為3-20的所有字元:^.$
由26個英文本母組成的字串:11
+$由26個大寫英文本母組成的字串:12
+$由26個小寫英文本母組成的字串:13
+$由數字和26個英文本母組成的字串:14
+$由數字、26個英文本母或者下劃線組成的字串:^\w+$ 或 ^\w$
中文、英文、數字包括下劃線:15
+$中文、英文、數字但不包括下劃線等符號:16
+$ 或 17
$可以輸入含有^%&『,;=?katex parse error: can't use function '\"' in math mode at position 1: \̲"̲等字元:[^%&『,;=?\x22]+
禁止輸入含有的字元:[^\x22]+
[a-za-z0-9_]$
密碼(以字母開頭,長度在6~18之間,只能包含字母、數字和下劃線):19
0-9 ↩︎
0-9 ↩︎
0-9 ↩︎
1-9 ↩︎
1-9 ↩︎
1-9 ↩︎
1-9 ↩︎
\u4e00-\u9fa5 ↩︎
a-za-z0-9 ↩︎
a-za-z0-9 ↩︎
a-za-z ↩︎
a-z ↩︎
a-z ↩︎
a-za-z0-9 ↩︎
\u4e00-\u9fa5a-za-z0-9_ ↩︎
\u4e00-\u9fa5a-za-z0-9 ↩︎
\u4e00-\u9fa5a-za-z0-9 ↩︎
a-za-z ↩︎
a-za-z ↩︎
正規表示式 常用正規表示式
一 校驗數字的表示式 1 數字 0 9 2 n位的數字 d 3 至少n位的數字 d 4 m n位的數字 d 5 零和非零開頭的數字 0 1 9 0 9 6 非零開頭的最多帶兩位小數的數字 1 9 0 9 0 9 7 帶1 2位小數的正數或負數 d d 8 正數 負數 和小數 d d 9 有兩位小數的...
正規表示式 常用正規表示式
網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 4 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 或者 1 3...
正規表示式 開發常用的正規表示式
正規表示式是一種用來進行文字匹配的工具,其語法優美簡潔。在開發中,查詢 對比以及匹配字串是家常便飯的業務,通過正規表示式我們將這些業務描述成某些需求規則,來讓我們的 更美觀 實用。例如我們要驗證使用者輸入的密碼長度是否滿足6 18位的長度,新手最常見的驗證方式是判斷輸入的密碼長度 return te...