python 基礎 十四 正規表示式

2022-08-23 18:36:15 字數 3519 閱讀 4506

概念:正則匹配就是乙個模糊的匹配 只要符合我的匹配規則 就會認為是正確的資料(精確的匹配)

1.#代表原子表把想要匹配的內容寫入原子表中   匹配包含的任意一位字元

[a]     #匹配小寫字母a

[ab]#匹配小寫字母a或者b

[aabb]#匹配字母a或b

[195]   #匹配任意一位數字

[a-z]#匹配任意一位小寫字母

2.^ #在原子表外稱之為以...作為開頭   放在原子表內叫取反  相當於 \a

^[abc]  #匹配以a/b/c字元作為開頭

[^abc]  #匹配任意一位小寫字母a/b/c以外的字元

^abc#匹配以小寫字母abc開頭的內容

^[0-9]

^[a-za-z0-9]

3.$ #以...作為結尾  相當於 \z

^[1][3-9][0-9]$  ^和$通常是組合使用 真正的限制匹配資料的正確性

4. #控制匹配前面數量的m次  不能單獨使用 和普通的內容一起使用或者和原子表

#匹配3個a的操作

[a][a][a]

aaa
a

[a]

#錯誤寫法

[a-za-z]

5.#控制匹配前面數量的m-n次  不能單獨使用 和普通的內容一起使用或者和原子表

#匹配qq號碼

5-11

^[1-9][0-9]$

010-778192

101-621331

[01]\-[0-9]

6.  #表示匹配前面數量至少m次

[a-z]

#1 匹配1-99的正則
[1-9][0-9]

#2 匹配任意一位正負整數和小數 ?
[\-][1-9]

7.?#可有可無  匹配前面的正規表示式的 0次或者一次  類似於   或指明乙個非貪婪的限定符

[1-9][0-9]?

[\-]?[1-9]

8. .  #匹配換行符\n以外的任意一位字元

9. *#匹配前面表示式的任意次 相等於

10. .*#匹配除換行符以外的任意字元任意次  貪婪模式

11. .*?#匹配除換行符以外的任意字元任意次   非貪婪模式

12.  +#匹配前面表示式的至少1次 相等於

13. .+#匹配除換行符以外的任意字元至少1次  貪婪模式

14. .+?#匹配除換行符以外的任意字元至少次   非貪婪模式

15. ()#1.代表乙個單元2.子儲存

16. |#表示或

#匹配手機號碼或者qq號碼
(^[1-9][0-9]$)|(^[1][3-9][0-9]$)

使用正則函式需要匯入內建的 re模組

import re

re.i 忽略大小寫

re.m 多行模式 改變^和$的作用

re.s 改變.的行為 可以匹配換行符

\d 相當於 [0-9]

\d 相當於 [^0-9]

\w 相當於 [a-za-z0-9_]

\w 相當於[^a-za-z0-9_]

\s 匹配空白字元

\s 匹配非空白字元

pattern:正規表示式

string:要匹配的字串的內容

flags:修正符

返回結果:

匹配成功 返回物件

匹配失敗 返回none

注意:

match必須從第一位開始匹配 如果第一位沒有符合的 則匹配失敗 類似於在正則前方新增^

只匹配一次

取值

group() 將值取出

group([index]) 索引可有可無 如果正則內沒有存在括號 則不需要傳index

groups() 正則內括號的值 以元組形式進行返回

pattern:正規表示式

string:要匹配的字串的內容

flags:修正符

返回結果:

匹配成功 返回物件

匹配失敗 返回none

只匹配一次

和match的區別 只要字串中包含就可以

pattern:正規表示式

string:要匹配的字串的內容

flags:修正符

返回結果:

匹配成功返回裝有資料的列表

匹配失敗返回空列表

next(re.finditer())

sub(pattern, repl, string, count=0, flags=0)

subn(pattern, repl, string, count=0, flags=0)

split(pattern, string, maxsplit=0, flags=0):

將正則和函式分開使用 提高執行效率 正規表示式 可以多次使用

使用方法

pattern = re.compile("pattern",flags)

pattern.函式名(匹配的字串)

修正符

re.i(re.ignorecase)

re.s(re.dotall)

re.m(re.multiline)

Python 正規表示式(基礎)

正規表示式 regular expression 是乙個特殊的字串行,描述了一種字串匹配的模式可以用來檢查乙個串是否含有某種子串 將匹配的子串替換或者從某個串中取出符合某個條件的子串,或者是在指定的文章中,抓取特定的字串等。python處理正規表示式的模組是re模組,它是python語言擁有全部的正...

Python正規表示式基礎

直接給出字元就是精確匹配。特殊字元首先需要轉義如 d 匹配乙個數字,w 匹配乙個字母或者數字。123 d 可以匹配 1231 但是無法匹配 123a d d d 可以匹配到 123 w w w 可以匹配到 py3 表示任意乙個字元,py.可以表示py3 py 等 表示任意長個字元,表示至少乙個字元,...

python基礎(正規表示式)

正規表示式用於搜尋 替換和解析字串。正規表示式遵循一定的語法規則,使用非常靈活,功能強大。使用正規表示式編寫一些邏輯驗證非常方便,例如電子郵件位址格式的驗證。python提供了re模組實現正規表示式的驗證。1.簡介 正規表示式是用於文字匹配的工具,它在源字串中查詢與給定的正規表示式相匹配的部分,乙個...