正则表达式入门之使用元字符
正則表達(dá)式—使用元字符
1.???使用元字符
1.1對特殊字符轉(zhuǎn)義
在元字符前加上反斜杠就可以對其進(jìn)行轉(zhuǎn)義:轉(zhuǎn)義序列\(zhòng).將匹配.本身,轉(zhuǎn)義序列\(zhòng)[將匹配[本身。
每個元字符都可以通過給他加上一個反斜杠前綴的方法來轉(zhuǎn)義,如此得到的轉(zhuǎn)義序列將匹配那個字符本身而不是它特殊的元字符含義。
例1
#文本 var myAarray = new Array(); ... if (myArray[0] == 0) { ... } #正則表達(dá)式 myArray\[0\]#結(jié)果
var myAarray = new Array();
...
if (myArray[0]== 0) {
...
}如果我們想查找的不僅僅是myArray[0]還包括myArray[1]、myArray[2]之類[]中包含數(shù)組元素0到9的,我們可以構(gòu)造如下正則表達(dá)式:
myArray\[[0-9]\]
如果我們想把包含反斜杠(\)的路徑文件中所有的反斜杠找出,就需要對\進(jìn)行轉(zhuǎn)義,否則會出錯。
例2
#文本 C:\Users\admin\Desktop\python_for_work\spyder_worker #正則表達(dá)式 \\#結(jié)果
C:\Users\admin\Desktop\python_for_work\spyder_worker1.2匹配空白字符
在進(jìn)行正則表達(dá)式搜索時,我們經(jīng)常會遇到需要對原始文本里的非打印空白字符進(jìn)行匹配的情況,
這類字符很難被直接輸入到一個正則表達(dá)式中,但我們可以使用下表中列出的特殊元字符來輸入他們。
?
| [\b] | 回退(并刪除)一個字符 |
| \f | 換頁符 |
| \n | 換行符 |
| \r | 回車符 |
| \t | 制表符 |
| \v | 垂直制表符 |
?
1.3匹配特定的字符類別
字符集合是最常見的匹配形式,而一些常用的字符集合可以用特殊的元字符來代替,這些元字符匹配的是某一類別的字符。
| \d | 任何一個數(shù)字字符,等價于[0-9] |
| \D | 任何一個非數(shù)字字符,等價于[^0-9] |
| \w | 任何一個字母數(shù)字字符(大小均可)或下劃線字符,等價于[A-Za-z0-9_] |
| \W | 任何一個非字母數(shù)字字符或下劃線字符,等價于[^A-Za-z0-9_] |
| \s | 任何一個空白字符,等價于[\f\n\r\t\v] |
| \S | 任何一個非空白字符,等價于[^\f\n\r\t\v] |
例1
#文本 1121 A1S2D3 12374 G3H2J3 K1K1K1 GHJKUH #正則表達(dá)式 \w\d\w\d\w\d#結(jié)果
1121
A1S2D3
12374
G3H2J3
K1K1K1
GHJKUH1.4使用POSIX字符類
?
POSIX字符類是許多(但不是所有)正則表達(dá)式實(shí)現(xiàn)都支持的一種簡寫形式。
?
| [:digit:] | 任何數(shù)字,等價于[0-9] |
| [:xdigit:] | 任何十六進(jìn)制數(shù)字,等價于[a-Fa-f0-9] |
| [:alpha:] | 任何字母,等價于[A-Za-z] |
| [:lower:] | 任何小寫字母,等價于[a-z] |
| [:upper:] | 任何大寫字母,等價于[A-Z] |
| [:alnum:] | 任何字母或數(shù)字,等價于[A-Za-z0-9] |
| [:cntrl:] | ASCII控制字符(ASCII 0~31和 ASCII 127) |
| [:punct:] | 不屬于[:alnum:]和[:cntrl:]的任何字符 |
| [:blank:] | 空格或制表符,等價于[\t? ] |
| [:space:] | 任何空白字符,包括空格,等價于[\f\n\r\t\v ] |
| [:print:] | 任何可打印字符 |
| [:graph:] | 同[:print:],但不包括空格 |
?
?
總結(jié)
以上是生活随笔為你收集整理的正则表达式入门之使用元字符的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 剑三鹤梦套怎么获得
- 下一篇: 正则表达式入门之重复匹配