1. 程式人生 > 實用技巧 >正則表示式——Python

正則表示式——Python

正則表示式概述

1. 正則表示式的介紹

在實際開發過程中經常會有查詢符合某些複雜規則的字串的需要

比如:郵箱、圖片地址、手機號碼等,這時候想匹配或者查詢符合某些規則的字串就可以使用正則表示式了。

2. 正則表示式概念

正則表示式就是記錄文字規則的程式碼

re模組操作

1. re模組的介紹

在Python中需要通過正則表示式對字串進行匹配的時候,可以使用一個 re 模組

  #coding=utf-8

    # 匯入re模組
    import re

    # 使用match方法進行匹配操作
    result = re.match(正則表示式,要匹配的字串)

    
# 如果上一步匹配到資料的話,可以使用group方法來提取資料 result.group()

2. re模組示例

(匹配以itcast開頭的語句)
 #coding=utf-8

    import re

    result = re.match("itcast","itcast.cn")

    result.group()

3. 小結

  • re.match() 根據正則表示式從頭開始匹配字串資料

匹配單個字元

字元功能
. 匹配任意1個字元(除了\n)
[ ] 匹配[ ]中列舉的字元
\d 匹配數字,即0-9
\D 匹配非數字,即不是數字
\s 匹配空白,即 空格,tab鍵
\S 匹配非空白
\w 匹配單詞字元,即a-z、A-Z、0-9、_
\W 匹配非單詞字元

示例1: .

#coding=utf-8

import re

ret = re.match(".","M")
print(ret.group())

ret = re.match("t.o","too")
print(ret.group())

ret = re.match("t.o","two")
print(ret.group())

執行結果:

M
too
two

示例2:[ ]

#coding=utf-8

import
re # 如果hello的首字元小寫,那麼正則表示式需要小寫的h ret = re.match("h","hello Python") print(ret.group()) # 如果hello的首字元大寫,那麼正則表示式需要大寫的H ret = re.match("H","Hello Python") print(ret.group()) # 大小寫h都可以的情況 ret = re.match("[hH]","hello Python") print(ret.group()) ret = re.match("[hH]","Hello Python") print(ret.group()) ret = re.match("[hH]ello Python","Hello Python") print(ret.group()) # 匹配0到9第一種寫法 ret = re.match("[0123456789]Hello Python","7Hello Python") print(ret.group()) # 匹配0到9第二種寫法 ret = re.match("[0-9]Hello Python","7Hello Python") print(ret.group()) ret = re.match("[0-35-9]Hello Python","7Hello Python") print(ret.group()) # 下面這個正則不能夠匹配到數字4,因此ret為None ret = re.match("[0-35-9]Hello Python","4Hello Python") # print(ret.group())

執行結果:

h
H
h
H
Hello Python
7Hello Python
7Hello Python
7Hello Python

示例3:\d

#coding=utf-8

import re

# 普通的匹配方式
ret = re.match("嫦娥1號","嫦娥1號發射成功") 
print(ret.group())

ret = re.match("嫦娥2號","嫦娥2號發射成功") 
print(ret.group())

ret = re.match("嫦娥3號","嫦娥3號發射成功") 
print(ret.group())

# 使用\d進行匹配
ret = re.match("嫦娥\d號","嫦娥1號發射成功") 
print(ret.group())

ret = re.match("嫦娥\d號","嫦娥2號發射成功") 
print(ret.group())

ret = re.match("嫦娥\d號","嫦娥3號發射成功") 
print(ret.group())

執行結果:

嫦娥1號
嫦娥2號
嫦娥3號
嫦娥1號
嫦娥2號
嫦娥3號