日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python正则表达regex_Python 正则表达式(RegEx)

發(fā)布時(shí)間:2025/3/19 python 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python正则表达regex_Python 正则表达式(RegEx) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

版權(quán)所有,未經(jīng)許可,禁止轉(zhuǎn)載

正則表達(dá)式是組成搜索模式的字符序列。

正則表達(dá)式用于按指定的搜索模式搜索字符串。

正則表達(dá)式(RegEx)模塊

Python有一個(gè)名為re的內(nèi)置包,用來處理正則表達(dá)式。

示例

導(dǎo)入re模塊:

import re

Python中的正則表達(dá)式

導(dǎo)入re模塊后,就可以開始使用正則表達(dá)式:

示例

搜索字符串,查看是否以“the”開頭,以“Spain”結(jié)尾:

import re

txt = "The rain in Spain"

x = re.search("^The.*Spain$", txt)

正則表達(dá)式函數(shù)

re模塊提供了一組函數(shù),用于搜索匹配的字符串:

函數(shù)

描述

findall

返回包含所有匹配項(xiàng)的列表

search

如果文本中有匹配項(xiàng),則返回匹配對(duì)象

split

使用字符串分割文本,返回文本被分割后的列表

sub

用字符串替換一個(gè)或多個(gè)匹配項(xiàng)/td>

元字符

元字符是具有特殊意義的字符:

字符

描述

例子

[]

字符集合

"[a-m]"

\

標(biāo)志特殊轉(zhuǎn)義字符(也可以用來轉(zhuǎn)義特定字符)

"\d"

.

任何字符(換行字符除外)

"he..o"

^

開始文本

"^hello"

$

結(jié)束文本

"world$"

*

0次或多次出現(xiàn)

"aix*"

+

1次或多次出現(xiàn)

"aix+"

{}

確定的出現(xiàn)次數(shù)

"al{2}"

|

或者

"falls|stays"

()

捕獲并分組

特殊轉(zhuǎn)義字符

特殊轉(zhuǎn)義字符是\后面跟著下面列表中的某個(gè)字符,有特殊的含義:

字符

描述

例子

\A

如果指定字符串位于文本的開頭,則返回匹配項(xiàng)

"\AThe"

\b

如果指定字符串位于文本開頭或結(jié)尾,則返回匹配項(xiàng)

r"\bain"

r"ain\b"

\B

如果指定字符串沒有位于文本開頭或結(jié)尾,則返回匹配項(xiàng)

r"\Bain"

r"ain\B"

\d

如果文本中包含了數(shù)字(0-9),返回匹配項(xiàng)

"\d"

\D

如果文本中不包含數(shù)字(0-9),返回匹配項(xiàng)

"\D"

\s

返回文本中包含空白字符的匹配項(xiàng)

"\s"

\S

返回文本中不包含空白字符的匹配項(xiàng)

"\S"

\w

如果文本中包含任何單詞字符(從a到Z的字符,從0到9的數(shù)字,以及下劃線_字符),返回匹配項(xiàng)

"\w"

\W

如果文本中不包含任何單詞字符(從a到Z的字符,從0到9的數(shù)字,以及下劃線_字符),返回匹配項(xiàng)

"\W"

\Z

如果指定的字符串位于文本末尾,則返回匹配項(xiàng)

"Spain\Z"

集合

集合是一對(duì)方括號(hào)[]中的一組字符,具有特殊的含義:

Set

描述

[arn]

返回匹配指定字符(a、r或n)之一的匹配項(xiàng)

[a-n]

返回匹配任意a和n之間,小寫字符的匹配項(xiàng)

[^arn]

返回匹配除a、r和n之外的任何字符的匹配項(xiàng)

[0123]

返回匹配指定數(shù)字(0、1、2或3)的匹配項(xiàng)

[0-9]

返回匹配0到9之間任意數(shù)字的匹配項(xiàng)

[0-5][0-9]

返回匹配從00到59的任意兩位數(shù)的匹配項(xiàng)

[a-zA-Z]

返回匹配按字母順序在a和z之間、小寫或大寫的任何字符的匹配項(xiàng)

[+]

在集合中,+,*,.,|,(),$,{}沒有特殊的含義,所以[+]的意思是: 返回字符串中"+"字符的匹配項(xiàng)

findall()函數(shù)

findall()函數(shù)返回一個(gè)包含所有匹配項(xiàng)的列表。

示例

打印包含所有匹配項(xiàng)的列表:

import re

str = "The rain in Spain"

x = re.findall("ai", str)

print(x)

列表中的匹配項(xiàng)按找到的順序排序。

如果沒有找到匹配項(xiàng),返回一個(gè)空列表:

示例

打印所有匹配項(xiàng)的列表:

import re

str = "The rain in Spain"

x = re.findall("Portugal", str)

print(x)

search() 函數(shù)

search() 搜索文本中的匹配項(xiàng),如果有匹配項(xiàng),返回匹配對(duì)象。

如果有多個(gè)匹配項(xiàng),只返回第一個(gè):

示例

搜索文本中的第一個(gè)空白字符:

import re

str = "The rain in Spain"

x = re.search("\s", str)

print("第一個(gè)空白字符位于:", x.start())

如果沒有找到匹配項(xiàng),則返回None值:

示例

不匹配:

import re

str = "The rain in Spain"

x = re.search("Portugal", str)

print(x)

split() 函數(shù)

split()函數(shù)使用字符串分割文本,返回文本被分割后的列表:

示例

在每個(gè)空白字符處分割文本:

import re

str = "The rain in Spain"

x = re.split("\s", str)

print(x)

可以通過指定maxsplit參數(shù)來控制分割次數(shù):

示例

只在第一次匹配時(shí)分割字符串:

import re

str = "The rain in Spain"

x = re.split("\s", str, 1)

print(x)

sub() Function

將匹配項(xiàng)替換為指定文本:

示例

用數(shù)字9替換每個(gè)空白字符:

import re

str = "The rain in Spain"

x = re.sub("\s", "9", str)

print(x)

可以通過count參數(shù)來控制替換的數(shù)量:

示例

替換前兩項(xiàng):

import re

str = "The rain in Spain"

x = re.sub("\s", "9", str, 2)

print(x)

匹配對(duì)象

匹配對(duì)象是一個(gè)包含搜索和結(jié)果信息的對(duì)象。

注意: 如果沒有匹配,則返回None值,而不是匹配對(duì)象。

示例

搜索一下,將返回一個(gè)匹配對(duì)象:

import re

str = "The rain in Spain"

x = re.search("ai", str)

print(x) #打印對(duì)象

匹配對(duì)象具有用于檢索搜索信息的屬性和方法:

.span() 返回一個(gè)元組,其中包含匹配項(xiàng)的開始和結(jié)束位置。

.string 返回傳遞給函數(shù)的文本

.group() 返回文本中匹配的部分

示例

打印第一個(gè)匹配項(xiàng)的位置(開始和結(jié)束位置)。

正則表達(dá)式查找任何以大寫字母“S”開頭的單詞:

import re

str = "The rain in Spain"

x = re.search(r"\bS\w+", str)

print(x.span())

示例

打印傳入函數(shù)的文本:

import re

str = "The rain in Spain"

x = re.search(r"\bS\w+", str)

print(x.string)

示例

打印文本中匹配的部分。

正則表達(dá)式查找任何以大寫字母“S”開頭的單詞:

import re

str = "The rain in Spain"

x = re.search(r"\bS\w+", str)

print(x.group())

注意: 如果沒有匹配,則返回None值,而不是匹配對(duì)象。

總結(jié)

以上是生活随笔為你收集整理的python正则表达regex_Python 正则表达式(RegEx)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。