何所謂正則表達(dá)式?個(gè)人理解就是文本搜索的一種規(guī)則。那么正則表達(dá)式就需要解決下面的問(wèn)題
- 規(guī)則如何表示
- 規(guī)則如何使用
規(guī)則如何表示
| 序號(hào) | 需求 | 表示 |
|---|---|---|
| 1 | 任意一個(gè)字符 | (.) |
| 2 | 任意一個(gè)字符在備選范圍內(nèi)(字符集) | ([a-zA-Z0-9]),[^abc] |
| 3 | 匹配開(kāi)頭 | '^' (注意區(qū)別反轉(zhuǎn)字符集2,沒(méi)有放到中括號(hào)里面) |
| 4 | 匹配結(jié)尾 | '$' |
如果需要匹配多個(gè)連續(xù)的字符,怎么辦?那么就看連續(xù)的定義了,a) 如果只需要匹配('python','pear')兩個(gè)單詞,管道運(yùn)算符就這么來(lái)了
| 序號(hào) | 需求 | 表示 |
|---|---|---|
| 5 | 匹配不等長(zhǎng)單詞 | 管道運(yùn)算符<code>(|)</code> ,'p(ython(|)ear)' |
多個(gè)字符的另外一種情況就是重復(fù)模式
| 序號(hào) | 需求 | 表示 |
|---|---|---|
| 6 | 0個(gè)或者多個(gè)t | '(t)*' |
| 7 | 只是一個(gè)t | '(t)+' |
| 8 | 指定數(shù)量m,n | '(t){m,n}' |
例子:匹配網(wǎng)址'www.itdecent.cn', 'wwww.jianshou.com'等網(wǎng)址可以為
r'^(w){3,4}\.jiansh(u|ou)(.)+com$'
主要是希望在你使用的時(shí)候能夠查詢(xún)到這些。注意轉(zhuǎn)義字符\\的使用
規(guī)則如何使用?
規(guī)則已然通過(guò)字符串的方式構(gòu)建了,這種字符串中的特定符號(hào)代表了一系列已知或者未知的東東。那么如何使用這個(gè)字符串呢?python提供了re模塊干這個(gè)事情,那么在深入之前,舉個(gè)例子。老板讓你找一個(gè)黑頭發(fā)或者黃頭發(fā),年齡在16-20之間,罩杯在c和d之間的女模特,你會(huì)問(wèn)什么問(wèn)題呢?
- 去哪兒找(大街上,模特公司,還是xx數(shù)據(jù)庫(kù))
- 怎么找(方法很多哈)
- 到底能不能找到(沙漠里估計(jì)就難找到這樣的模特呀)
- 找多少(一個(gè)還是都找到)
- 找到了做什么(走秀表演,還是拍廣告)
- 怎么才能快速的找到(問(wèn)問(wèn)前輩,做過(guò)了的)
這么多的問(wèn)題,re模塊都給你解決了,對(duì)應(yīng)模式的搜索
- 去哪兒找(提供的字符串)
- 怎么找(使用re模塊)
- 到底能不能找到(search下看看)
- 找多少(findall 全給你,你自己決定)
- 找到了做什么(分割字符串,替換)
- 怎么才能快速的找到(compile一下)