摘要:正則表達式的限定符有字符描述匹配前面的子表達式零次或多次。注意限定符出現在范圍表達式之后。定位符定位符使您能夠將正則表達式固定到行首或行尾。
在線正則測試工具: http://www.regexpal.com/
語法正則表達式(RegExp: regular expression)描述了一種字符串匹配的模式,可以用來檢查一個串是否含有某種子串、將匹配的子串做替換或者從某個串中取出符合某個條件的子串等。
普通字符普通字符包括沒有顯式指定為元字符的所有可打印和不可打印字符。這包括所有大寫和小寫字母、所有數字、所有標點符號和一些其他符號。
非打印字符非打印字符也可以是正則表達式的組成部分。下表列出了表示非打印字符的轉義序列:
字符 | 描述 |
---|---|
cx | 匹配由x指明的控制字符. |
f | 匹配一個換頁符. 等價于x0c和cL. |
匹配一個換行符. 等價于x0a和cJ. | |
匹配一個回車符. 等價于x0d和cM. | |
匹配一個制表符. 等價于x09和cI. | |
v | 匹配一個垂直制表符.等價于x0b和cK. |
s | 匹配任何空白字符, 包含換頁符、換行符、回車符、空格、制表符等等. 等價于[f v]. |
S | 匹配任何非空白字符. 等價于[^f v] |
所謂特殊字符,就是一些有特殊含義的字符,如上面說的*.txt中的*,簡單的說就是表示任何字符串的意思。如果要查找文件名中有 * 的文件,則需要對 * 進行轉義,即在其前加一個。ls *.txt。
許多元字符要求在試圖匹配它們時特別對待。若要匹配這些特殊字符,必須首先使字符轉義,即,將反斜杠字符 ( ) 放在它們前面。下表列出了正則表達式中的特殊字符:
特殊字符 | 描述 |
---|---|
$ | 匹配輸入字符串的結尾位置. |
( ) | 標記一個子表達式的開始和結束位置. |
* | 匹配前面的子表達式零次或者多次. |
+ | 匹配前面的子表達式一次或者多次. |
. | 匹配出換行符 之外的任何單字符. |
[ | 標記一個中括號表達式的開始. |
? | 匹配前面的子表達式零次或一次, 或指一個非貪婪限定符 |
將下一個字符標記為或特殊字符, 或原義字符, 或向后引用, 或八進制轉移符.例如: n匹配字符n. 匹配換行符. 序列 匹配 , 而 ( 則匹配 (. | |
^ | 匹配輸入字符串的開始位置, 除非在方括號表達式中使用, 此時它表示不接受該字符集. |
{ | 標記限定字符表達式的開始 |
| | 指明兩項之間的一個選擇 |
限定符用來指定正則表達式的一個給定組件必須要出現多少次才能滿足匹配。有*或+或?或{n}或{n,}或{n,m}共6種。
正則表達式的限定符有:
字符 | 描述 |
---|---|
* | 匹配前面的子表達式零次或多次。例如,zo 能匹配 "z" 以及 "zoo"。 等價于{0,}。 |
+ | 匹配前面的子表達式一次或多次。例如,"zo+" 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價于 {1,}。 |
? | 匹配前面的子表達式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價于 {0,1}。 |
{n} | n 是一個非負整數。匹配確定的 n 次。例如,"o{2}" 不能匹配 "Bob" 中的 "o",但是能匹配 "food" 中的兩個 o。 |
{n,} | n 是一個非負整數。至少匹配n 次。例如,"o{2,}" 不能匹配 "Bob" 中的 "o",但能匹配 "foooood" 中的所有 o。"o{1,}" 等價于 "o+"。"o{0,}" 則等價于 "o*"。 |
{n,m} | m 和 n 均為非負整數,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 將匹配 "fooooood" 中的前三個 o。"o{0,1}" 等價于 "o?"。請注意在逗號和兩個數之間不能有空格。 |
注意: 限定符出現在范圍表達式之后。因此,它應用于整個范圍表達式。
定位符*、+、?、和 {} 限定符都是貪婪的,因為它們會盡可能多的匹配文字,只有在它們的后面加上一個?就可以實現非貪婪或最小匹配。
定位符使您能夠將正則表達式固定到行首或行尾。它們還使您能夠創建這樣的正則表達式,這些正則表達式出現在一個單詞內、在一個單詞的開頭或者一個單詞的結尾。
定位符用來描述字符串或單詞的邊界,^和$分別指字符串的開始與結束, 描述單詞的前或后邊界,B 表示非單詞邊界。
正則表達式的限定符有:
字符 | 描述 |
---|---|
^ | 匹配輸入字符串的開始位置。如果設置了 RegExp 對象的 Multiline 屬性,^ 還會與 或 之后的位置匹配。 |
$ | 匹配輸入字符串結尾的位置。如果設置了 RegExp 對象的 Multiline 屬性,$ 還會與 或 之前的位置匹配。 |
匹配一個字的邊界,即字與空格間的位置。 | |
B | 非字邊界匹配。 |
注意: 不能將限定符與定位點一起使用。由于在緊靠換行或者字邊界的前面或后面不能有一個以上位置,因此不允許諸如 ^* 之類的表達式。
未完
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80866.html
摘要:分組小括號功能較多有三種功能,作用一,把單獨的項組合成子表達式。作用三,允許后面引用前面的表達式。如果這時的正則表達式是一個非全局的,那么和正則表達式方法拿到的結果相同。,也可以接受一個正則表達式作為參數。 正則表達式創建字面量創建,a = /abc/gim;構造函數創建,a = new RegExp(abc,gim)正則表達式中的特殊字符,[...] 方括號中的任意字符[^...] ...
摘要:布爾值,表示是否設置了標志。正則表達式的字符串表示,按照字面量形式而非傳入構造函數中的字符串模式返回正則表達式的實例方法方法是否匹配基本語法參數為正則表達式為所要匹配的字符串返回值布爾值在模式與該參數匹配的情況下返回否則,返回。 高程書中對正則部分介紹的偏少,特別是元字符部分幾乎沒有介紹;我找了幾篇不錯的博客作為收錄:正則表達式30分鐘入門教程正則表達式-理論基礎篇正則表達式-基礎實戰...
摘要:說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 說來慚愧,做前端快三年對于正則表達式的應用還是很淺薄,大家都知道正則的速度基本上是最快的,但就是懶得去記那些語法和規則,這次項目中多次用到了需要匹配替換的動作,終于下定決心去研究一下了。 實例化正則對...
摘要:主要知識點新增的字符串處理方法模板字面量以及正則表達式上的改動深入理解筆記目錄字符串字符串是大原始數據類型。如果在字符串的結束部分檢測到指定文本,返回,否則返回。字符串內插入反撇號的方式。 主要知識點:新增的字符串處理方法、模板字面量以及正則表達式上的改動showImg(https://segmentfault.com/img/bVbfWak?w=861&h=622); 《深入理解E...
摘要:可視化查看正則表達式復雜版,很直觀,神器一枚可視化查看正則表達式簡化版 常見需求如下: 如果你只需要獲取字符串中的首個匹配項 var re = /quicks(brown).+?(jumps)/ig; var result = re.exec(The Quick Brown Fox Jumps Over The Lazy Dog); // 就算有 g 標識,通過 exec 也只能獲取到...
閱讀 2793·2021-09-23 11:44
閱讀 1681·2021-09-13 10:24
閱讀 2629·2021-09-08 09:36
閱讀 1238·2019-08-30 15:54
閱讀 2258·2019-08-30 13:54
閱讀 3317·2019-08-30 10:57
閱讀 1856·2019-08-29 18:43
閱讀 3622·2019-08-29 15:10