正則表達(dá)式

是什么?

正則表達(dá)式是一組由字母和符號組成的特殊文本, 它可以用來從文本中找出滿足你想要的格式的句子。 其目的是對大量數(shù)據(jù)做過濾,很多場合都會用到。

比如: 篩選大量的email郵件,是否符合標(biāo)準(zhǔn)格式。

常使用縮寫的術(shù)語"regex"或"regexp".


實(shí)例:

讓用戶名包含字符,數(shù)字,下劃線和連字符

^[a-z0-9_-]{3,15}$

僅作為參觀,后面詳細(xì)解釋各個字符的作用與常見的正則表達(dá)式。



1.基礎(chǔ)匹配:? ? The? ? 匹配? ? The , 一一對應(yīng)完全匹配。

"The" => The fat cat sat on the mat.


2.元字符

正則表達(dá)式主要依賴于元字符. 元字符不代表他們本身的字面意思, 他們都有特殊的含義. 元字符寫在方括號中有一些特殊的意思.

.? ? 匹配任意單個字符,除了回車符
[] 匹配方括號內(nèi)任意字符?
[^]匹配除方括號內(nèi)的任意字符
*? 匹配*號之前的字符,找到多個(大于等于0)重復(fù)的
+? 匹配+號之前的字符,找到多個(大于等于1)重復(fù)的
?? 標(biāo)識?之前的字符可選
{n,m} 匹配num個字符,(n<num<m)
(xyz)? 匹配與字符集xyz完全相對的字符串
|? 匹配運(yùn)算符前或者后的字符
\ 轉(zhuǎn)義字符,用于匹配一些保留字符,如以上提到的字符[ ] ( ) { } . * + ? ^ $ \ |
^? 從開始行開始匹配
$? 從末端開始匹配

參考:

https://juejin.im/entry/59a651116fb9a024844938b5#1-%E5%9F%BA%E6%9C%AC%E5%8C%B9%E9%85%8D

一般來說 ^ 表示一個字符串的開頭, 但它用在一個方括號的開頭的時候, 它表示這個字符集是否定的. 例如, 表達(dá)式[^c]ar 匹配一個后面跟著ar的除了c的任意字符.

[^c]at?

例如表達(dá)式c.+t 匹配以首字母c開頭以t結(jié)尾,中間跟著任意個字符的字符串.

c.+t?
a+t? ? 匹配:? aaat? aat? at
(at)+t? 匹配? atatll? atattt? aaatat


?

(at)+t?? ? 匹配 at? att?


簡寫字符集

.? 換行符外所有字符
\w? 匹配所有字母數(shù)字 [a-zA-Z0-9]
\W 匹配所有非字母數(shù)字 [\w]
\d? 匹配所以數(shù)字
\D? 匹配所有非數(shù)字
\s? 匹配所有空格
\S? 匹配所有非空格?
正向向后約束 (?<=\$)[0-9\.]*. 這個表達(dá)式匹配 $ 開頭, 之后跟著 0,1,2,3,4,5,6,7,8,9,. 這些字符可以出現(xiàn)大于等于 0 次.
(T|t)he(?=\sfat) 匹配 The 和 the, 在括號中我們又定義了前置約束(存在) (?=\sfat) ,即 The 和 the 后面緊跟著 (空格)fat
前置約束-排除 ?! 用于篩選所有匹配結(jié)果, 篩選條件為 其后不跟隨著定義的格式 前置約束-排除 定義和 前置約束(存在) 一樣, 區(qū)別就是 = 替換成 ! 也就是 (?!...).
后置約束-存在 記作(?<=...) 用于篩選所有匹配結(jié)果, 篩選條件為 其前跟隨著定義的格式. 例如, 表達(dá)式 (?<=(T|t)he\s)(fat|mat) 匹配 fat 和 mat, 且其前跟著 The 或 the.
后置約束-排除 記作 (?<!...) 用于篩選所有匹配結(jié)果, 篩選條件為 其前不跟著定義的格式. 例如, 表達(dá)式 (?<!(T|t)he\s)(cat) 匹配 cat, 且其前不跟著 The 或 the.
標(biāo)志:? i 忽略大小寫? g 全局搜索? m多行


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 什么是正則表達(dá)式? 正則表達(dá)式是一組由字母和符號組成的特殊文本, 它可以用來從文本中找出滿足你想要的格式的句子. ...
    l_genius閱讀 683評論 0 0
  • 寫在最前面的話 最近在瀏覽Github Star榜時發(fā)現(xiàn)了關(guān)于學(xué)習(xí)正則表達(dá)式的介紹,感覺非常不錯,可以邊看邊學(xué)邊練...
    王詩翔閱讀 2,692評論 1 21
  • 正則表達(dá)式 定義:正則表達(dá)式是一組由字母和符號組成的特殊文本, 它可以用來從文本中找出滿足你想要的格式的句子。 一...
    MinoyJet閱讀 1,429評論 1 1
  • 正則表達(dá)式是一組由字母和符號組成的特殊文本, 它可以用來從文本中找出滿足你想要的格式的句子. 一個正則表達(dá)式是在一...
    小焲閱讀 377評論 0 0
  • 允許的修飾符 有些修飾符能在所有允許的地方出現(xiàn), 但并非所有的都這樣. 通常, 影響 regex 編譯的修飾符(...
    焉知非魚閱讀 1,591評論 0 1

友情鏈接更多精彩內(nèi)容