正規表示式小結篇

2022-10-08 03:12:11 字數 2548 閱讀 9075

正規表示式就是由普通字元(例如字元 a 到 z)以及特殊字元(稱為元字元)組成的文字模式。該模式描述在查詢文字主體時待匹配的乙個或多個字串。正規表示式作為乙個模板,將某個字元模式與所搜尋的字串進行匹配。

1、元字元

[擁有特殊含義的元字元]

\d -> 匹配乙個0-9的數字,相當於[0-9],和它相反的是\d ->匹配乙個除了0-9的任意字元

\w -> 匹配乙個0-9、a-z、a-z、_的數字或字元,相當於[0-9a-za-z_]

\s -> 匹配乙個空白字元(空格、製表符...)

\b -> 匹配乙個單詞的邊界

\t -> 匹配乙個製表符

\n -> 匹配乙個換行

. -> 匹配乙個除了\n以外的任意字元

^ -> 以某乙個元字元開頭

$ -> 以某乙個元字元結尾

\ -> 轉移字元

x|y -> x或者y的乙個

[xyz] -> x、y、z中的任意乙個

[^xyz] -> 除了xyz中的任意乙個字元

[a-z] -> 匹配sasxhtarcya-z中的任意乙個字元

[^a-z] -> 匹配除了a-z中的任意乙個字元

() -> 正則中的分組

注意:1)關於

a、[+] ->中括號**現的所有字元都代表的是本身的意思

b、[12-65] ->這個不是12-65而是1/2-6/5三者中的乙個

2)關於()

a、分組的作用是改變預設的優先順序,例如:/^18|19$/,181、189、119、819、1819...都符合,而不是我們認為的18或19,但是改成/^(18|19)$/就是單純的18或19了

b、可以在捕獲大正則匹配的內容同時,把分組匹配的內容也進行捕獲->分組捕獲

c、分組引用,例如:/^(\d)(\w)\2\1$/,這裡的\2是和第二個分組出現一模樣的內容,\1是和第乙個分組出現一模一樣的內容,例如:"0aa0"就符合了

[代表數量的量詞元字元]

* -> 0到多個

+ -> 1到多個

? -> 0到1個

-> 出現n次

-> 出現n到多次

-> 出現n到m次

注意:1)關於?的幾種情況

a、放在非量詞元字元後面,代表出現0-1次

b、放在量詞元字元後面,代表取消捕獲時候的貪婪性,例如:reg=/\d+/; reg.exec("2015") -> "2015" 但是如果正則這樣寫 reg=/\d+?/; reg.exec("2015") -> "2"

c、在分組開頭加?:,代表當前的分組只是匹配不進行捕獲,例如:/^(?:\d+)$/

d、在分組開頭加?=,正向預查,例如:/^abcdef(?=1|2)$/ 只有"abcdef1"和"abcdef2"才符合

e、在分組開頭加?!,負向預查,例如:/^abcdef(?!1|2)$/ 除了"abcdef1"和"abcdef2"不符合,其他的只要是"abcdef(任何的東西)"都符合

[代表本身意思的元字元]

除了以上的,在字面量方式中,我們出現的其他任意字元代表的都是自己本身的意思

var num=12;

var reg=/^\w"+num+"$/; ->這裡"+num+"不是把變數的值拼接,而這裡的不管是"還是+都是元字元

->對於需要拼接字串和變數的方式我們只能使用例項方式建立正則

2、修飾符

i -> ignorecase 忽略字母的大小寫

g -> global 全域性匹配 (加上g可以解決正則捕獲時候的懶惰性)

m -> multiline 多行匹配

3、專案中常用的正則

www.cppcns.com  1)有效數字的

var reg=/^[+-]?(\d|([1-9]\d+))(\.\d+)?$/;

2)郵箱的

var reg = /^\w+((-\w+)|(\.\w+))*@[a-za-z0-9]+((\.|-)[a-za-z0-9]+)*\.[a-za-z0-9]+$/;

3)**的

var reg = /^1\d$/;

4)年齡在18-65之間的

var reg = /^((18|19)|([2-5]\d)|(6[0-5]))$/;

5)中文姓名

var re = /^[\u4e00-\u9fa5]$/;

6)身份證

var reg = /^(\d)(\d)(\d)(\d)(?:\d)(\d)(?:\d|x)$/;

//-> 12828(省市縣) 1990(年) 12(月) 04(日) 06 1(奇數是男偶數是女) 7(數字或者x)

4、正則的匹配

reg.test([string]) ->true就是匹配成功  false->匹配不成功

5、正則的捕獲

1)reg.exec([string])

-> 首先去匹配,匹配成功在捕獲,返回的是乙個陣列; 如果匹配不成功返回的是null;

-> 正則的捕獲即懶惰又貪婪

-> 解決懶惰性 在正則的末尾增加全域性修飾符g

-> 解決貪婪性 在量詞後面加?

本文標題: 正規表示式小結篇

本文位址:

fei 正規表示式 正規表示式小結

常用的元字元常用的反義 常用的限定符 語法 說明 語法 說明 語法 說明 w 匹配字母或數字或下劃線或漢字 w匹配任意不是字母 數字 下劃線 漢字的字元 重複零次或者更多次 s匹配任意的空白字元 s匹配任意不是空白符的字元 重複一次或更多次 d匹配數字 d匹配任意非數字的字元 重複零次或一次 b匹配...

正規表示式小結

正規表示式 regex 英 red eks 1,d d d d或者是 d 表示匹配4位數的數字。2.說明。這些可被稱作元字元。匹配除換行符以外的任意字元1 jk2yh jj w數字字母漢字下劃線 bst456 5ghgtft s匹配任意的空白符 space table鍵和半全形空格 d匹配數字 di...

正規表示式小結

最近學習了正規表示式,趁還熱乎,寫下這篇部落格,記錄一下。正規表示式 英語 regular expression,在 中常簡寫為regex 正規表示式是乙個字串,使用單個字串來描述 用來定義匹配規則,匹配一系列符合某個句法規則的字串。在開發中,正規表示式通常被用來檢索 替換那些符合某個規則的文字,也...