又一篇正則表達(dá)式學(xué)習(xí)筆記
更新時間:2008年12月03日 16:34:05 作者:
里面涉及到了一些正則表達(dá)式的高級技巧,特別推薦給大家
1. \b:表示單詞的開頭或者結(jié)尾,可能是空格、標(biāo)點(diǎn)符號或者換行,但是\b不匹配其中的任何一個,這是指代這些元素中的任一個位置。
示例:\bhi\b:查找文本中所有的“hi”單詞,但是不包括him、history等字樣
1.1 ^:匹配字符串的開始,特指一個段落的起始。
1.2 $:匹配字符串的結(jié)束。特指一個段落的結(jié)尾,這兩個都是\b的子集。
重復(fù):
2. *:表示*前面的內(nèi)容重復(fù)出現(xiàn)任意多次,".*"連在一起就表示任意數(shù)量的不包含換行符的字符。
示例:\bhi\b.*\bLucy\b:先是一個hi,然后任意多個字符(但不能有回車),最后是一個單獨(dú)的單詞Lucy。
2.1 +:同樣表示數(shù)量,但是+必須是1次或以上,不包括0次,而*是指任意數(shù)量,包括0次重復(fù)。
2.2 {n}:數(shù)量控制,前方的字符精確重復(fù)n次。
2.3 {n,m}:數(shù)量控制,前方的字符重復(fù)n到m次,n<=m。
2.4 ?:重復(fù)0次或1次。
3. .: 表示任意字符,不包含回車換行。
4. \d:匹配任意的數(shù)字(0,1,2……9)
示例:0\d\d-\d{7}:查找以0開頭,后兩個是數(shù)字,然后是一個連字符"-",接著是7個數(shù)字的字符串,如:025-8224110。
5. \s:匹配任意的空白符,包括空格、制表符(tab鍵)、換行符、中文全角空格等。
6. \w:匹配字母、數(shù)字、下劃等。
示例1:\ba\w*\b:匹配以字母"a"開頭,然后是任意多個任意字符不包括空格等空白符,然后一個單詞結(jié)束符。其意義就是以a開頭的所有單詞。
示例2:\b\w{6}\b:匹配正好是6個字符長度的單詞。
7. []:任意匹配一個方括號中存在的字符。
示例:[abc]\w{4}\b:以a、b、c中的任意一個字符為開頭,后面有4個字母的單詞。
反義
8. \D \S \W \B 這些元字符的大寫形式分別表示他們表示的集合的反義。
示例:\D:表示不是數(shù)字的所有字符,如:abced
8.1 [^x]:表示不是x字符的所有字符
8.2 [^xyz]:表示不是x、y、z中任一種的字符
9.替換
"|":使用"|"符號可以實現(xiàn)邏輯或運(yùn)算,配合小括號"()"的使用,可以實現(xiàn)不同條件的或運(yùn)算。
10分組
"()":用括號包圍住已經(jīng)實現(xiàn)的表達(dá)式,可以方便的繼續(xù)使用重復(fù)、替換等操作。
示例:\b(\w+\b\s+)\1+\b:將第一次出現(xiàn)的括號表達(dá)式用\1表示,可以匹配go go go
自學(xué)到這里已經(jīng)非常不錯了,下面繼續(xù)研究正則表達(dá)式的高級屬性
斷言:
(?=express)這是一種假定條件,可以放在表達(dá)式的后方,已驗證前方的字符后面的表達(dá)式是否為express,但是并不包含后方的express。
示例:\b\w*(?=ing\b):取得后綴為ing的所有單詞的前綴。
(?<=express)前置斷言,放于表達(dá)式首部,已驗證字符串前方的表達(dá)式是否符合express,同樣也不包含express本身。
示例:(?<=\bre)\w*\b:取得所有前綴為re的單詞的后面部分
注釋:
(?#)以這種形式來注釋正則表達(dá)式。
示例:2[0-4]\d(?#200-249)
懶惰模式匹配
*:匹配最多的字符
*?:匹配最少的字符
示例:\bhi\b:查找文本中所有的“hi”單詞,但是不包括him、history等字樣
1.1 ^:匹配字符串的開始,特指一個段落的起始。
1.2 $:匹配字符串的結(jié)束。特指一個段落的結(jié)尾,這兩個都是\b的子集。
重復(fù):
2. *:表示*前面的內(nèi)容重復(fù)出現(xiàn)任意多次,".*"連在一起就表示任意數(shù)量的不包含換行符的字符。
示例:\bhi\b.*\bLucy\b:先是一個hi,然后任意多個字符(但不能有回車),最后是一個單獨(dú)的單詞Lucy。
2.1 +:同樣表示數(shù)量,但是+必須是1次或以上,不包括0次,而*是指任意數(shù)量,包括0次重復(fù)。
2.2 {n}:數(shù)量控制,前方的字符精確重復(fù)n次。
2.3 {n,m}:數(shù)量控制,前方的字符重復(fù)n到m次,n<=m。
2.4 ?:重復(fù)0次或1次。
3. .: 表示任意字符,不包含回車換行。
4. \d:匹配任意的數(shù)字(0,1,2……9)
示例:0\d\d-\d{7}:查找以0開頭,后兩個是數(shù)字,然后是一個連字符"-",接著是7個數(shù)字的字符串,如:025-8224110。
5. \s:匹配任意的空白符,包括空格、制表符(tab鍵)、換行符、中文全角空格等。
6. \w:匹配字母、數(shù)字、下劃等。
示例1:\ba\w*\b:匹配以字母"a"開頭,然后是任意多個任意字符不包括空格等空白符,然后一個單詞結(jié)束符。其意義就是以a開頭的所有單詞。
示例2:\b\w{6}\b:匹配正好是6個字符長度的單詞。
7. []:任意匹配一個方括號中存在的字符。
示例:[abc]\w{4}\b:以a、b、c中的任意一個字符為開頭,后面有4個字母的單詞。
反義
8. \D \S \W \B 這些元字符的大寫形式分別表示他們表示的集合的反義。
示例:\D:表示不是數(shù)字的所有字符,如:abced
8.1 [^x]:表示不是x字符的所有字符
8.2 [^xyz]:表示不是x、y、z中任一種的字符
9.替換
"|":使用"|"符號可以實現(xiàn)邏輯或運(yùn)算,配合小括號"()"的使用,可以實現(xiàn)不同條件的或運(yùn)算。
10分組
"()":用括號包圍住已經(jīng)實現(xiàn)的表達(dá)式,可以方便的繼續(xù)使用重復(fù)、替換等操作。
示例:\b(\w+\b\s+)\1+\b:將第一次出現(xiàn)的括號表達(dá)式用\1表示,可以匹配go go go
自學(xué)到這里已經(jīng)非常不錯了,下面繼續(xù)研究正則表達(dá)式的高級屬性
斷言:
(?=express)這是一種假定條件,可以放在表達(dá)式的后方,已驗證前方的字符后面的表達(dá)式是否為express,但是并不包含后方的express。
示例:\b\w*(?=ing\b):取得后綴為ing的所有單詞的前綴。
(?<=express)前置斷言,放于表達(dá)式首部,已驗證字符串前方的表達(dá)式是否符合express,同樣也不包含express本身。
示例:(?<=\bre)\w*\b:取得所有前綴為re的單詞的后面部分
注釋:
(?#)以這種形式來注釋正則表達(dá)式。
示例:2[0-4]\d(?#200-249)
懶惰模式匹配
*:匹配最多的字符
*?:匹配最少的字符
相關(guān)文章
JavaScript正則表達(dá)式迷你書之貪婪模式-學(xué)習(xí)筆記
這篇文章主要介紹了JavaScript正則表達(dá)式迷你書之貪婪模式-學(xué)習(xí)筆記,需要的朋友可以參考下2020-02-02JavaScript中的正則表達(dá)式使用及驗證qq號碼的正則
這篇文章給大家介紹了javascript中的正則表達(dá)式使用及驗證qq號碼的正則表達(dá)式,涉及到手機(jī)號、姓名、qq相關(guān)知識驗證,感興趣的朋友一起學(xué)習(xí)吧2015-11-11asp去掉html,保留img br p div的正則實現(xiàn)代碼
非常實用的一個函數(shù),這里主要用到了正則的匹配模式大家可以看腳本之家網(wǎng)站的正則專題2009-02-02只能輸入正整數(shù)的正則表達(dá)式及常用的正則表達(dá)式
這篇文章主要介紹了只能輸入正整數(shù)的正則表達(dá)式以及常用的正則表達(dá)式,需要的朋友可以參考下2018-09-09