自己學習,只記些其中的要點。
.匹配任意單個字符, 但不匹配換行符
在方括號中使用連字符來指定字符集的范圍. 在方括號中的字符集不關心順序. 例如, 表達式[Tt]he 匹配 the 和 The.
方括號的句號就表示句號. 表達式 ar[.] 匹配 ar.字符串
一般來說 ^ 表示一個字符串的開頭, 但它用在一個方括號的開頭的時候, 它表示這個字符集是否定的. 例如, 表達式[/^c]ar(沒有/) 匹配一個后面跟著ar的除了c的任意字符.
號匹配 在之前的字符出現大于等于0次
字符和.字符搭配可以匹配所有的字符.. 和表示匹配空格的符號s連起來用, 如表達式scats*匹配0或更多個空格開頭和0或更多個空格結尾的cat字符串.
+號匹配+號之前的字符出現 >=1 次. 例如表達式c.+t 匹配以首字母c開頭以t結尾,中間跟著任意個字符的字符串. "c.+t" => The fat cat sat on the mat.
在正則表達式中元字符 ? 標記在符號前面的字符為可選, 即出現 0 或 1 次. 例如, 表達式 [T]?he 匹配字符串 he 和 The. "[T]?he" => The car is parked in the garage.
在正則表達式中 {} 是一個量詞, 常用來一個或一組字符可以重復出現的次數. 例如, 表達式 [0-9]{2,3} 匹配最少 2 位最多 3 位 0~9 的數字.
"[0-9]{2,3}" => The number was 9.9997 but we rounded it off to 10.0.
我們可以省略第二個參數. 例如, [0-9]{2,} 匹配至少兩位 0~9 的數字.
"[0-9]{2,}" => The number was 9.9997 but we rounded it off to 10.0.
如果逗號也省略掉則表示重復固定的次數. 例如, [0-9]{3} 匹配3位數字
"[0-9]{3}" => The number was 9.9997 but we rounded it off to 10.0.
(...) 特征標群
表達式 (ab)* 匹配連續出現 0 或更多個 ab. (c|g|p)ar 匹配 car 或 gar 或 par.
| 或運算符
(T|t)he|car 匹配 (T|t)he 或 car
轉碼特殊字符
反斜線 在表達式中用于轉碼緊跟其后的字符. 用于指定 { } [ ] / + * . $ ^ | ? 這些特殊字符. 如果想要匹配這些特殊字符則要在其前面加上反斜線 .
"(f|c|m)at.?" => The fat cat sat on the mat.
錨點. ^ 指定開頭, $ 指定結尾.
^ 號
^ 用來檢查匹配的字符串是否在所匹配字符串的開頭.
$ 號
$ 號用來匹配字符是否是最后一個.
"(at.)$" => The fat cat. sat. on the mat.
18.簡寫字符集
. 除換行符外的所有字符 w 匹配所有字母數字, 等同于 [a-zA-Z0-9_] W 匹配所有非字母數字, 即符號, 等同于: **[^w]** d 匹配數字: [0-9] D 匹配非數字: [^d] s 匹配所有空格字符, 等同于: [ f p{Z}] S 匹配所有非空格字符: [^s] f 匹配一個換頁符 匹配一個換行符 匹配一個回車符 匹配一個制表符 v 匹配一個垂直制表符 p 匹配 CR/LF (等同于 ),用來匹配 DOS 行終止符
19.前后關聯約束(前后預查)
?= 前置約束-存在 ?! 前置約束-排除 ?<= 后置約束-存在 ?20.?=... 前置約束(存在)
表達式 (T|t)he(?=sfat) 匹配 The 和 the, 在括號中我們又定義了前置約束(存在) (?=sfat) ,即 The 和 the 后面緊跟著 (空格)fat."(T|t)he(?=sfat)" => The fat cat sat on the mat.
21.?!... 前置約束-排除表達式 (T|t)he(?!sfat) 匹配 The 和 the, 且其后不跟著 (空格)fat."(T|t)he(?!sfat)" => The fat cat sat on the mat.
22.?<= ... 后置約束-存在例如, 表達式 (?<=(T|t)hes)(fat|mat) 匹配 fat 和 mat, 且其前跟著 The 或 the."(?<=(T|t)hes)(fat|mat)" => The fat cat sat on the mat.
23.?例如, 表達式 (?"(? The cat sat on cat.
24.標志也叫修飾語, 因為它可以用來修改表達式的搜索結果. 這些標志可以任意的組合使用, 它也是整個正則表達式的一部分.i 忽略大小寫. g 全局搜索. m 多行的: 錨點元字符 ^ $ 工作范圍在每行的起始.25.修飾語 i 用于忽略大小寫. 例如, 表達式 /The/gi 表示在全局搜索 The, 在后面的 i 將其條件修改為忽略大小寫, 則變成搜索 the 和 The, g 表示全局搜索.
"/The/gi" => The fat cat sat on the mat.
26.修飾符 g 常用語執行一個全局搜索匹配, 即(不僅僅返回第一個匹配的, 而是返回全部). 例如, 表達式 /.(at)/g 表示搜索 任意字符(除了換行) + at, 并返回全部結果.
27.多行修飾符 m 常用語執行一個多行匹配.
例如, 表達式 /at(.)?$/gm 表示在待檢測字符串每行的末尾搜索 at后跟一個或多個 . 的字符串, 并返回全部結果.
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/88572.html
摘要:正則大法好,正則大法好,正則大法好,重要的事情說三遍。第二部分,這個部分是整個表達式的關鍵部分。學習正則如果還沒有系統學習正則表達式,這里提供一些網上經典的教程供大家學習。正則表達式使用單個字符串來描述匹配一系列匹配某個句法規則的字符串。 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) ,喜歡的可以關注最新動態,大家一起多交流學習,共同...
摘要:正則大法好,正則大法好,正則大法好,重要的事情說三遍。第二部分,這個部分是整個表達式的關鍵部分。學習正則如果還沒有系統學習正則表達式,這里提供一些網上經典的教程供大家學習。正則表達式使用單個字符串來描述匹配一系列匹配某個句法規則的字符串。 原文收錄在我的 GitHub博客 (https://github.com/jawil/blog) ,喜歡的可以關注最新動態,大家一起多交流學習,共同...
摘要:說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 實例化正則對...
閱讀 2164·2021-11-11 16:55
閱讀 1685·2019-08-30 15:54
閱讀 2817·2019-08-30 15:53
閱讀 2211·2019-08-30 15:44
閱讀 1152·2019-08-30 15:43
閱讀 965·2019-08-30 11:22
閱讀 1942·2019-08-29 17:20
閱讀 1566·2019-08-29 16:56