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