2019-05-08_day_17_正則表達式總結(jié)

day_17_正則表達式


正則表達式就是做字符串匹配的一種工具煤蚌,很多語言都支持正則語法刃滓。正則語法是通用的

python中通過re模塊提供的方法來使用正則

re.fullmatch(正則表達式,字符串) - 完全匹配拥娄,檢測字符串是否滿足正則表達式的要求;如果不匹配結(jié)果是None熙暴,匹配結(jié)果是一個匹配對象

python-正則表達式 -r'正則‘

js正則表達式 - /正則/

1.普通字符在正則中代表字符本身闺属,例如,a, b, 1...等

2. 特殊符號“.",一個 . 匹配一個任意字符(除換行符以外)

3.\w 匹配字母周霉,數(shù)字掂器,下劃線

注意:這個不嚴謹,還能匹配中文等字符

不能匹配ASCII碼表中除了字母數(shù)字下劃線以外的符號

不好用>阆洹9汀!

4.\s 匹配空白字符

空白字符:空格、\t 乃摹、\n

一個\s 只能匹配一個空白字符

5.\d 匹配數(shù)字字符

6.\W 與小寫的功能相反(非數(shù)字禁漓,字母,下劃線)

7.\S 匹配非空白字符

8. \D 匹配非數(shù)字字符

9. [普通字符集] 匹配字符集中的任意一個字符 - 一個[]只能匹配一個字符

10.[字符1-字符2] 匹配字符1到字符2中的任意一個字符(要求字符1的編碼值小于字符2)

[0-9] - 匹配所有數(shù)字

[a-z] - 匹配所有小寫字母

[A-Z] - 匹配所有大寫字母

[a-zA-Z] - 匹配所有字母

[\a-zA-Z_] - 匹配所有數(shù)字字母下劃線

[\u4e00-\u9fa5] - 匹配所有中文

11.[^字符集] - 匹配不在字符集中的任何一個字符

檢測字符的符號

1. \b - 檢測單詞邊界

檢查\b所在的位置是否是單詞邊界

單詞邊界 - 區(qū)分字符串開頭孵睬、字符串結(jié)尾播歼、空白、標點符號等

2.^ - 檢查是否是字符串開頭

3.$ - 檢測試是否是字符串結(jié)尾

轉(zhuǎn)義符號

通過在正則中有特殊意義掰读、功能的符號前加\讓這個符號變?yōu)槠胀ǚ?/h3>

注意:除了^放在[]開頭秘狞,和-放在兩個字符之間以外,其它特殊符號蹈集,在[]沒有特殊功能都是表示字符本身

^在[]中不在開頭就沒有特殊意義烁试,-在[]中不在兩個字符之間就沒有特殊意義。

匹配次數(shù)

1. * - 匹配0次或多次

字符* - 指定字符出現(xiàn) 0次或多次

a* - 字符a匹配 0 次或多次

\d* - 數(shù)字匹配 0 次或多次

[a-z]* - 小寫字母匹配 0 次或多次

2. + - 匹配1次或多次

3. 雾狈? - 匹配0次或1次

4.{N} - 匹配N次

{M,N} - 匹配至少M次至多N次(M<N)

{M,} - 匹配至少M次

{,N} - 匹配至多N次

分支和分組

匹配一個字符串廓潜,開頭是abc或者xyz,后面是123

正則1|正則2 - 先用正則1進行匹配善榛,如果匹配失敗再用正則2匹配(正則1和正則2中只要有一個匹配成功就成功辩蛋,兩個失敗了才失敗)

注意:如果正則1匹配成功了移盆,不會再使用正則2去匹配

2. () - 分組

將部分正則作為一個整體

1. 整體區(qū)分

2.整體操作

\M- 重復第M個分組匹配的內(nèi)容

貪婪 - 匹配次數(shù)不確定的時候盡可能多的匹配(上面次數(shù)不確定的符號都是貪婪)

非貪婪 - 匹配次數(shù)不確定的時候盡可能少的匹配(上面次數(shù)不確定的符號后面加悼院?就會變成非貪婪)

*?

re模塊方法

1.compile(正則表達式) - 創(chuàng)建正則表達式對象

re_str = r""

re_obj = compile(re_str)

re_obj.fullmatch(' ')

2.fullmatch - 完全匹配

fullmatch(正則表達式咒循, 字符串) - 讓正則表達式和字符串完全匹配

對整個字符串進行檢查的時候使用据途,比如判斷賬號、密碼是否合法叙甸;手機號颖医、郵箱是否合法等

3.match(正則表達式,字符串) - 讓正則和字符串開頭匹配裆蒸;匹配失敗返回None熔萧,匹配成功返回匹配對象

4.search - 字符串查找

search(正則表達式,字符串) - 在字符串中找到第一個和正則表達式匹配的子串僚祷;沒有匹配到就返回None佛致,匹配成功返回匹配對象

通過匹配對象能獲取到以下內(nèi)容

a.匹配結(jié)果

print(result.group())#若不傳參則獲取整個結(jié)果若group(M)中傳整數(shù)M,即第M個分組

b.匹配范圍(被匹配到的內(nèi)容在原字符串中的范圍-下標)

print(result.span())

print(result.start())

print(result.end())

c.獲取原字符串

print(result.string)

5. split(正則表達式辙谜,字符串俺榆,切割次數(shù)(不傳參則完全切割)) - 將字符串按照滿足正則表達式的子串進行切割;返回一個列表装哆,列表中是被切開的子串

split(r'\d+|[A-Z]+',字符串)#按數(shù)字和大寫字母切割罐脊,+避免空元素

6. sub - 字符串替換

sub(正則表達式定嗓,替換的新字符串,原字符串爹殊,替換次數(shù)(不傳參則完全替換)) - 將原字符串中滿足正則表達式的子串替換成新字符串

7.findall(正則表達式蜕乡,字符串) - 在字符串中查找滿足正則表達式的子串以列表形式返回。

注意:使用findall如果有分組梗夸,想要取整個正則匹配的結(jié)果是取不到

8.finditer(正則表達式,字符串) - 在字符串中查找滿足正則表達式的子串号醉,返回一個迭代器反症,元素是每個子串對應的匹配對象

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市畔派,隨后出現(xiàn)的幾起案子铅碍,更是在濱河造成了極大的恐慌,老刑警劉巖线椰,帶你破解...
    沈念sama閱讀 217,406評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胞谈,死亡現(xiàn)場離奇詭異,居然都是意外死亡憨愉,警方通過查閱死者的電腦和手機烦绳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評論 3 393
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來配紫,“玉大人径密,你說我怎么就攤上這事√尚ⅲ” “怎么了享扔?”我有些...
    開封第一講書人閱讀 163,711評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長植袍。 經(jīng)常有香客問我惧眠,道長,這世上最難降的妖魔是什么于个? 我笑而不...
    開封第一講書人閱讀 58,380評論 1 293
  • 正文 為了忘掉前任氛魁,我火速辦了婚禮,結(jié)果婚禮上览濒,老公的妹妹穿的比我還像新娘呆盖。我一直安慰自己,他們只是感情好贷笛,可當我...
    茶點故事閱讀 67,432評論 6 392
  • 文/花漫 我一把揭開白布应又。 她就那樣靜靜地躺著,像睡著了一般乏苦。 火紅的嫁衣襯著肌膚如雪株扛。 梳的紋絲不亂的頭發(fā)上尤筐,一...
    開封第一講書人閱讀 51,301評論 1 301
  • 那天,我揣著相機與錄音洞就,去河邊找鬼盆繁。 笑死,一個胖子當著我的面吹牛旬蟋,可吹牛的內(nèi)容都是我干的油昂。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼倾贰,長吁一口氣:“原來是場噩夢啊……” “哼冕碟!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起匆浙,我...
    開封第一講書人閱讀 39,008評論 0 276
  • 序言:老撾萬榮一對情侶失蹤安寺,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后首尼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挑庶,經(jīng)...
    沈念sama閱讀 45,443評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,649評論 3 334
  • 正文 我和宋清朗相戀三年软能,在試婚紗的時候發(fā)現(xiàn)自己被綠了迎捺。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,795評論 1 347
  • 序言:一個原本活蹦亂跳的男人離奇死亡埋嵌,死狀恐怖破加,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情雹嗦,我是刑警寧澤范舀,帶...
    沈念sama閱讀 35,501評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站了罪,受9級特大地震影響锭环,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泊藕,卻給世界環(huán)境...
    茶點故事閱讀 41,119評論 3 328
  • 文/蒙蒙 一辅辩、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧娃圆,春花似錦玫锋、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至悦屏,卻和暖如春节沦,著一層夾襖步出監(jiān)牢的瞬間键思,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評論 1 269
  • 我被黑心中介騙來泰國打工甫贯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留吼鳞,地道東北人。 一個月前我還...
    沈念sama閱讀 47,899評論 2 370
  • 正文 我出身青樓叫搁,卻偏偏與公主長得像赔桌,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子常熙,可洞房花燭夜當晚...
    茶點故事閱讀 44,724評論 2 354

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

  • 一纬乍、正則表達式語法 正則表達式是用匹配或者描述字符串的工具。 用處:a.判斷字符串是否滿足某個條件---判斷輸入的...
    大漠判官1閱讀 354評論 0 1
  • from socket import socket 1.創(chuàng)建套接字 client = socket() 2.連接...
    Wadu_hek1閱讀 252評論 0 0
  • Day 17 補充 重載:函數(shù)的重載 -- 函數(shù)名相同但是參數(shù)不同的函數(shù)可以有多個裸卫,但是python不支持函數(shù)...
    曉曉_007f閱讀 346評論 0 1
  • 簡書(09班群)打卡模版 #幸福是需要修出來的~每天進步1%~幸福實修09班~04姓名胡峰 20170810(20...
    峰格派閱讀 147評論 0 0
  • 一、task_struct Android的進程管理建立在Linux內(nèi)核的基礎(chǔ)上纽竣。Linux內(nèi)核通過一個被稱為進程...
    Android征途閱讀 1,903評論 0 2