正則表達(dá)式

正則表達(dá)式

字符匹配

符號(hào) 意義 使用 結(jié)果
"." 匹配除換行符以外的任何字符 re.findall('.','abcbcd') ['a', 'b', 'c', 'b', 'c', 'd']
"^" 匹配字符串的開(kāi)頭 re.findall('^a','abcbcd') ['a']
"$" 匹配字符串末尾或字符串末尾換行符之前 re.findall('d$','abcbcd') ['d']
"*" 匹配前一個(gè)re的0個(gè)或多個(gè)(貪婪的)重復(fù)扮叨。貪婪意味著它將盡可能多的重復(fù)匹配 re.findall('b*','abcbcd') ['', 'b', '', 'b', '', '', '']
"+" 匹配前面的1次或多次(貪婪的)重復(fù) re.findall('bc+','abcbcd') ['bc', 'bc']
"?" 匹配前面re的0或1(貪婪) re.findall('bc?','abcbcd') ['bc', 'bc']
*?,+?,?? 前三個(gè)特殊字符的非貪婪版本 re.findall('b*?','abcbcd') re.findall('bc+?','abcbcd') re.findall('bc??','abcbcd') ['', '', 'b', '', '', 'b', '', '', ''] ['bc', 'bc'] ['b', 'b']
{m,n} 從m到n的匹配重復(fù)前面的re re.findall('bc{0,1}','abcbcd') ['bc', 'bc']
{m,n}? 上面的非貪婪版本 re.findall('bc{0,1}?','abcbcd') ['b', 'b']
"\" 要么轉(zhuǎn)義特殊字符,要么發(fā)出特殊序列的信號(hào)
[] 表示一組字符,作為第一個(gè)字符的“^”表示補(bǔ)集 re.findall('[bc]','abcbcd') re.findall('[^bc]','abcbcd') ['b', 'c', 'b', 'c'] ['a', 'd']
"|" A B,創(chuàng)建一個(gè)與A或B匹配的RE re.findall('b c','abcbcd') ['b', 'c', 'b', 'c']
(...) 匹配括號(hào)內(nèi)的re疫铜。可以在以后的字符串中檢索或匹配內(nèi)容 re.findall('(bc)','abcbcd') ['bc', 'bc']
(?aiLmsux) 設(shè)置RE的A双谆、I壳咕、L、M顽馋、S谓厘、U或X標(biāo)志(見(jiàn)下文)
(?:...) 常規(guī)括號(hào)的非分組版本 re.findall('(?:bc)','abcbcd') ['bc', 'bc']
(?P<name>...) 組匹配的子字符串可以通過(guò)名稱訪問(wèn) re.findall('(?P<bc>...)','abcbcd') ['abc', 'bcd']
(?P=name) 與前面名為name的組匹配的文本匹配
(?#...) 注釋;忽略 re.findall('..(?#bc)','abcbcd') ['ab', 'cb', 'cd']
(?=...) 匹配如果…匹配下一個(gè)寸谜,但不使用字符串 re.findall('.(?=.)','abcbcd') ['a', 'b', 'c', 'b', 'c']
(?!...) 匹配如果…不匹配下一個(gè) res = re.findall('.(?!.)','abcbcd') ['d']
(?<=...) 如果前面有…(必須為固定長(zhǎng)度) re.findall('.(?<=bc)','abcbcd') ['c', 'c']
(?<!...) 如果前面沒(méi)有匹配…(必須為固定長(zhǎng)度) re.findall('.(?<!bc)','abcbcd') ['a', 'b', 'b', 'd']
(?(id/name)yes|no) 匹配是模式如果ID/名稱匹配的組竟稳,則為(可選)否模式,否則為
\number 匹配同一號(hào)碼組的內(nèi)容
\A 僅在字符串開(kāi)頭匹配 re.findall('\A123','123123') ['123']
\Z 僅在字符串末尾匹配 re.findall('23\Z','123123') ['23']
\b 匹配空字符串熊痴,但僅在單詞的開(kāi)頭或結(jié)尾
\B 匹配空字符串他爸,但不在單詞的開(kāi)頭或結(jié)尾
\d 匹配任何十進(jìn)制數(shù)字;相當(dāng)于帶有ASCII標(biāo)志的集合[0-9]內(nèi)字節(jié)模式或字符串模式 re.findall('\d','123456') ['1', '2', '3', '4', '5', '6']
\D 匹配任何非數(shù)字字符果善;相當(dāng)于[^\d] re.findall('\D','a123b') ['a', 'b']
\s atches任何空白字符诊笤;相當(dāng)于字節(jié)模式中的[\t\n\r\f\v]或帶ASCII標(biāo)志的字符串模式。在不帶ASCII標(biāo)志的字符串模式中巾陕,它將匹配整個(gè)Unicode空白字符范圍讨跟。
\S 匹配任何非空白字符;相當(dāng)于[^\s]
\w 匹配任何字母數(shù)字字符鄙煤;相當(dāng)于字節(jié)模式中的[A-ZA-Z0-9 UUU]或帶ASCII標(biāo)志的字符串模式晾匠。在不帶ASCII標(biāo)志的字符串模式中,它將匹配Unicode字母數(shù)字字符(字母加數(shù)字加下劃線)的范圍梯刚。在區(qū)域設(shè)置中混聊,它將匹配集[0-9 UUU]加上定義的字符。作為當(dāng)前區(qū)域設(shè)置的字母乾巧。
\W 匹配\w的補(bǔ)碼
\|匹配文字反斜杠

方法使用

方法 使用場(chǎng)景
match 將正則表達(dá)式模式與字符串開(kāi)頭匹配
fullmatch 完全匹配將正則表達(dá)式模式與所有字符串匹配
search 在字符串中搜索是否存在模式
sub 在字符串中替換出現(xiàn)的模式
subn 與Sub相同句喜,但也返回所做替換的數(shù)目
split 按出現(xiàn)的模式拆分字符串
findall 在字符串中查找模式的所有匹配項(xiàng)
finditer 返回為每個(gè)匹配生成匹配對(duì)象的迭代器
compile 將模式編譯為模式對(duì)象
purge 清除正則表達(dá)式緩存
escape 反斜杠字符串中所有非字母數(shù)字

總結(jié)

==沒(méi)有測(cè)試的我自己也沒(méi)弄太清楚,正則表達(dá)式效率很高沟于,比bs4等效率要高很多咳胃,所以學(xué)習(xí)爬蟲(chóng)需要學(xué)號(hào)正則表達(dá)式,歡迎各位評(píng)論旷太,共同進(jìn)步==

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末展懈,一起剝皮案震驚了整個(gè)濱河市销睁,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌存崖,老刑警劉巖冻记,帶你破解...
    沈念sama閱讀 219,366評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異来惧,居然都是意外死亡冗栗,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,521評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)供搀,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)隅居,“玉大人,你說(shuō)我怎么就攤上這事葛虐√ピ矗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,689評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵屿脐,是天一觀的道長(zhǎng)涕蚤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)的诵,這世上最難降的妖魔是什么赞季? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,925評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮奢驯,結(jié)果婚禮上申钩,老公的妹妹穿的比我還像新娘。我一直安慰自己瘪阁,他們只是感情好撒遣,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,942評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著管跺,像睡著了一般义黎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上豁跑,一...
    開(kāi)封第一講書(shū)人閱讀 51,727評(píng)論 1 305
  • 那天廉涕,我揣著相機(jī)與錄音,去河邊找鬼艇拍。 笑死狐蜕,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的卸夕。 我是一名探鬼主播层释,決...
    沈念sama閱讀 40,447評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼快集!你這毒婦竟也來(lái)了贡羔?” 一聲冷哼從身側(cè)響起廉白,我...
    開(kāi)封第一講書(shū)人閱讀 39,349評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎乖寒,沒(méi)想到半個(gè)月后猴蹂,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,820評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡楣嘁,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,990評(píng)論 3 337
  • 正文 我和宋清朗相戀三年磅轻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片马澈。...
    茶點(diǎn)故事閱讀 40,127評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弄息,靈堂內(nèi)的尸體忽然破棺而出痊班,到底是詐尸還是另有隱情,我是刑警寧澤摹量,帶...
    沈念sama閱讀 35,812評(píng)論 5 346
  • 正文 年R本政府宣布涤伐,位于F島的核電站,受9級(jí)特大地震影響缨称,放射性物質(zhì)發(fā)生泄漏凝果。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,471評(píng)論 3 331
  • 文/蒙蒙 一睦尽、第九天 我趴在偏房一處隱蔽的房頂上張望器净。 院中可真熱鬧,春花似錦当凡、人聲如沸山害。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,017評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)浪慌。三九已至,卻和暖如春朴则,著一層夾襖步出監(jiān)牢的瞬間权纤,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,142評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工乌妒, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留汹想,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,388評(píng)論 3 373
  • 正文 我出身青樓撤蚊,卻偏偏與公主長(zhǎng)得像欧宜,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子拴魄,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,066評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容