Python正則表達式的使用技巧,都在這里了

導讀:今天就來跟大家一起介紹下正則表達式的使用技巧。

01 小括號,大作用
一般用于獲取 () 中的正則內容進行下一步操作使用,如果想要關閉這種獲取能力,可以在左括號 ( 后面加上 ?: 就可以了。 另一個作用就是讓括號內正則表達式進行組合,方便使用之前介紹的 ?* + 等,還有或操作符 |。
02 斷言
\b:匹配單詞的邊界 \B:匹配非單詞邊界,會受到ASCII標記影響 \A/^:從開始位置匹配, 如有MULTILINE標志,則^會在每個換行符后匹配 \Z/$:在結束位置匹配,如有MULTILINE標志,則$在每個換行符前匹配
正前瞻(?=e):如 表達式1(?=表達式2) 表達式3 ,則表式后面的內容需要匹配表達式2; 負前瞻(?!e):如 表達式1(?!表達式2) 表達式3 ,則表式后面的內容不能匹配表達式2; 正回顧(?<=e):如 (?<=表達式2)表達式1 表達式3 ,則表式前面的內容需要匹配表達式2; 負回顧(?<!e):如 (?<!表達式2)表達式1 表達式3 ,則表式前面的內容不能匹配表達式2。
03 條件表達
04 正則的四大功能
匹配:這個之前已經詳細講過了,就是看這個字符串是否符合正則表達式的語法。 提?。哼@個功能就是用來通過正則表達式提取指定字符串中符合要求的文本,如果有符合表達式的內容會返回一個或多個。 替換:這個功能可能用的會少一些,主要是用來將查找到的符合要求的文本,替換成我們指定的字符串。 拆分:這個功能用的更少了,其實就是用正則表達式對符合要求的文本字串進行分割。

05 正則的其他方法
sub(str, t, n):這個方法用來替換操作。即將每個匹配到的文本用 str 進行替換,并返回替換后的字符串。當指定了 n 時,則最多替換 n 次。對于 str 可以是組名或者編號來引用捕獲到的內容。 subn(str, t, n):這個方法和 sub() 方法基本相同,只是這個會返回一個二元組,其中除了包括結果字串,還有替換的數量。 split(str, n):這個方法是用來拆分字串操作。即將匹配到的文本對字符串進行分割,并返回一個結果列表。如果正則存在分組,則把分組匹配文本放列表中,并且每兩個分割的中間作為列表的一部分。
06 正則匹配對象
group():返回編號或組名匹配到的內容。默認(0)是表示匹配整個表達式內容,當然也可以指定多個,則會返回一個元組數據。 groupdict():這個方法會返回一個字典,其中字典的 KEY 是命名的組名,VALUE 為組名對應獲取的內容。 groups():該方法會返回一個包含所有捕獲內容的子分組的元組,如果指定了默認值,則這個值就會作為沒有獲取到的內容的值。 lastgroup():該方法用于獲取最后一個匹配到內容的組名。 lastindex():該方法會返回最后一個匹配到內容的組編號。 start():該方法用于指定匹配內容子分組是從字串的哪個位置開始匹配的,如果沒有匹配則返回 -1。 end():該方法用于返回當前匹配對象子分組是從哪個位置匹配結束的,如果沒有匹配則返回 -1。 span():該方法會返回一個二元組,內容為 (start(), end()) 的返回值。 pos():該方法用于搜索字符串的開頭起始位置。 endpos():該方法用于搜索字符串的結束末尾位置。
07 常用正則表達式
英文和數字: ^[A-Za-z0-9]+$ 或 ^[A-Za-z0-9]{4,40}$ 中文、英文、數字包括下劃線: ^[\u4E00-\u9FA5A-Za-z0-9_]+$ Email地址: ^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$ 手機號碼: ^(13[0-9]|14[5|7]|15[0|1|2|3|4|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$ 身份證號碼: (^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$) 空白行:\n\s*\r 日期格式:^\d{4}-\d{1,2}-\d{1,2} 復雜密碼: ^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])[a-zA-Z0-9]{8,10}$ 域名: [a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+\.?
08 總結


評論
圖片
表情
