您好,登錄后才能下訂單哦!
這篇文章主要為大家展示了“正則表達式的基礎知識點有哪些”,內容簡而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領大家一起研究并學習一下“正則表達式的基礎知識點有哪些”這篇文章吧。
\cx: 例: \ci 匹配ctrl+i(windows系統下面 ) 匹配類似\t的字符 就是匹配ascii碼的第十個字符,和字母表順序錯開一個,因為零不匹配,這個x可以是a-z,A-Z,別的字符跟在\c后面將當做匹配‘c’字符 例如:\c1
\f: 匹配一個換頁符號 [\cL]也可以匹配,作用:讓打印機打印下一張紙
\n: 匹配一個換行符。[\cJ]
\r: 匹配一個回車符。[\cM]
\s: 匹配任意空白字符,不能顯示上屏幕上的,上面的他都可以匹配到
\S: 匹配任何非空白的字符,和上面的相反,能顯示在屏幕上的
\t: 匹配一個制表符號。 鍵盤上的tab鍵
\v: 匹配一個垂直制表符。它的作用是讓‘\v’后面的字符從下一行開始輸出,且開始的列數為“\v”前一個字符所在列后面一列。
\w: 類似[0-9a-zA-Z_]。表示數字、大小寫字母和下劃線。
\W: [^0-9a-zA-Z_]。非單詞字符。和上面匹配的內容相反。
\d: [0-9]。表示是一位數字。
\D: [^0-9]。表示除數字外的任意字符。
上面的\n \r \s \S \t \w \W \d \D都是常用的,剩下的都是基本上不會用到的
如果要匹配以下的特殊字符,必須先讓字符轉義即'\x',
$: 匹配以前面結尾的字符。 例如:ddsdsfsfa a$
只會匹配a這個字符,如果ddddsdsffb 匹配這個字符串,則沒有匹配
(): 標記一個表達式的開始和結束的位置
*: 匹配前面的表達式零次或者多次
+: 匹配前面的表達式一次或者多次
.: 匹配除換行符\n之外的任何單字符
[]: 匹配中括號表達式里面的東西,一般和^一起用
?: 匹配前面的表達式零次或者一次
: 將下一個字符轉義
^: 匹配字符串開始的位置
{: 區配限定字符
() 是為了提取匹配的字符串。表達式中有幾個()就有幾個相應的匹配字符串。一個()代表一個組 ([a-z][0-9])
這個正則你必須得先匹配到前面是a-z里面的東西,后面跟的還得是0-9里面的東西,才會匹配到值 例如:aadccc23這個字符串就可以匹配到c2,aadccc@23這個字符串,([a-z][0-9])
通過這個正則就匹配不到值 。 []是定義匹配的字符范圍。比如 [a-zA-Z0-9] 表示相應位置的字符要匹配英文字符和數字。[\t]表示tab。 {}一般用來表示匹配的長度,比如 \t{3} 表示匹配三個tab,\t[1,3]表示匹配一到三個tab。
|: 指明兩項之間的一個選擇。(小括號‘()’會改變他的作用范圍) 例:wl:625363199@qq.com
wl|yjm|khl:.* 和 (wl|yjm|khl):.*
后者會匹配完整的wl:625363199@qq.com 前者則只會匹配wl ,因為后者的小括號改變了|作用范圍,(wl|yjm|khl)使用范圍變成了(wlyjmkhl)
,和:.*
后面的字符不在一個段,所以可以匹配整個字符,前者的范圍在wl|yjm|khl:.*
上面,可以這樣理解wl
為一組yjm
為一組 khl:.*
為一組,所以匹配到wl就匹配完了如果將正則改為yjm|khl|wl:.*
就可以 匹配完整的字符串
貪婪模式的匹配正則:
“{m,n}”有n個最多匹配n個 例如:d{1,3}
ddd 匹配到的值就是ddd
"{m,}"有多少個就匹配多少個 例如:d{1,}
ddddd匹配到的值就是ddddd
"?"有一個就匹配一個 例如:d?
ddd匹配到的值就是d d d
"*"有多少個就匹配多少個 例如:"d星號(typora的bug)" ddd匹配到的值就是d d d
"+"有多少個就匹配多少個 例如:d+
ddd匹配到的值就是d d d
非貪婪模式正則:
"{m,n}?"按m匹配 例如:d{1,3}?
ddd 匹配到的值就是d d d 一個一個值返回
"{m,}?"按m個數匹配 例如:d{1,}?
ddd 匹配到的值就是d d d一個一個值返回
"??"匹配零個 例如:d??
ddd 匹配到的值就是沒有 匹配
"*?"匹配零個 例如:d星號?
ddd 匹配到的值就是沒有匹配
"+?"匹配一個 例如:d+?
ddd 匹配到的值就是 d d d一個一個值返回
*:匹配零次或者多次
+:匹配一次或多次
?:匹配零次或一次
{n}:n不能為負數,至少匹配n次
{n,}:至少匹配n+次,
{n,m}:至少匹配n次最多匹配m次。n<=m
^: 匹配字符串開始的位置,和中括號結合使用體驗最佳
$: 匹配以前面結尾的字符。 例如:ddsdsfsfa a$
只會匹配a這個字符,如果ddddsdsffb 匹配這個字符串,則沒有匹配
\b: 匹配一個單詞邊界,即字與空格間的位置,例如:?abc \ba
能匹配到a,\bb
就不能配置到b了,因為b前面沒有沒有邊界字符,?a中bc 這樣\bb
就能匹配到b了因為b和前面的‘中‘這個字符產生了邊界,所以就可以匹配了,一般符號和中文之間,符號和英文之間,中文和英文之間會產生邊界。
\B: 匹配一個非單詞邊界,和上面匹配的相反,一般符號和符號之間,英文和英文之間,中文和中文之間沒有邊界。
^:不放在中括號里面匹配的是一行開頭的部分,例如:daf ^d
這個是可以匹配到d的 ^da
也是可以匹配到da的,它們都跟在開頭的后面是連續的,^a
是在daf這個字符串中是匹配不到a的,adf 這個字符串就可以被^a
匹配到 ,a字符是adf字符串中開頭的第一個字符所以可以被匹配到,^d
匹配adf這個字符串,匹配不到d,因為d不是開頭的第一個字符。^ad
匹配adf這個字符串可以匹配到ad,因為ad是開頭前兩個字符,是連續的所以可以匹配。
^:放在中括號里面[^daf]
匹配以d開頭的字符或者以a或者以f開頭的字符,簡單的說就是不匹配daf 可以理解為取反的意思。例如:dafbbdcfgh 這個[^daf]
就會匹配 b b c g h 這幾個字符 。[^wl]
匹配”wl是w測l試呀wl字符串“這個字符串的結果是,是、測、試、呀、字、符、串。除了wl這兩個字符別的字符都匹配。
?=: 前瞻,匹配表達式前面的表達式的內容。例如:a(?=b)
匹配ab這個字符串就會匹配到a這個字符,匹配ba這個字符串就匹配不到值 。
?<=:后顧,匹配表達式后面的表達式的內容。例如:(?<=b)a
匹配ba這個字符串就會匹配到a這個字符,匹配ab這個字符串就匹配不到值 。
exp1(?!exp2):負前瞻,匹配后面不是exp2的exp1 例如:a(?!b)
匹配ba這個字符串會匹配到值,但是匹配bab,就匹配不到值 。因為a的后面出現b這個字符了。
(?<!--exp2)exp1 :負后顧,查找前面不是exp2的exp1,例如:(?<!b)a
匹配ab這個字符串就會匹配到值 ,但是匹配bab這個字符就無法匹配到值 ,因為a字符的前面出現了b字符,所以無法匹配。
?: 非捕獲分組,(?:a)
匹配ab這個字符串的時候雖然會匹配到,但是不會把值存起來,增加正則的匹配速度。而(a)
匹配ab這個字符串的時候匹配到的同時,也會將值存起來,后面可以提取出來。
以上是“正則表達式的基礎知識點有哪些”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。