re模組
1,findall方法
找出所有符合規則的字串,匹配不到返回為空列表
str1 =
'人生若只如初見,何事秋風悲畫扇'
result = re.findall(
'只如初見'
,str1)
# 精準匹配
print
(result)
match
只能匹配到乙個,從字串的起始位置開始匹配,沒有匹配到返回none
str2 =
'python123'
result = re.match(
'python'
,str2)
print
(result)
group 提取到匹配的內容
a = result.group(
)print
(a)
span 提取到匹配字串的下標
b = result.span(
)print
(b)
search
只能匹配到乙個符合條件的字串,找到了就返回
result = re.search(
'123'
,str2)
print
(result)
match和search的區別:
match從字串的開始位置匹配,如果字串一開始就不符合規則,則匹配失敗,返回none
search匹配整個字串,如果一直找不到,返回none
都只返回乙個符合條件的
findall會找到所有符合規則的字串
2,元字元
.代表任意乙個字元
str1 =
'高堂明鏡悲白髮,朝如青絲暮成雪'
result = re.findall(
'高堂明鏡...',str1)
print
(result)
字元組 匹配中列舉的字元組
result = re.findall(
'[8]'
,str1)
# [0-9]
print
(result)
str1 =
'ab ac ad'
result = re.findall(
'a[bc]',str1)
# ab ac
print
(result)
整個中括號只代表乙個字元
錨點元字元 ^字串首 $字串尾
str1 =
'高堂明鏡悲白髮,朝如青絲暮成雪'
re.findall(
'^高堂明鏡',str1)
print
(result)
re.findall(
'暮成雪$',str1)
print
(result)
\b 單詞邊界
str2 =
'hello sayhello'
result = re.findall(
'\bhello'
,str2)
#3個hello
#(r'\bhello',str2) r反轉義,2個hello
print
(result)
{}控制次數
控制的是前乙個字元出現的次數,可以直接寫次數,數字代表數量
str3 =
'abbbbc'
result = re.findall(
'abc'
,str3)
result = re.findall(
'abc'
,str3)
#可以填區間左閉右閉
result = re.findall(
'abc'
,str3)
# 起始位置不寫,從0開始
result = re.findall(
'abc'
,str3)
# 終止位置不寫,可到正無窮
print
(result)
\d 匹配數字
str4 =
'abc123'
result = re.findall(r'\d'
,str4)
print
(result)
\d 匹配非數字
result = re.findall(r'\d'
,str4)
print
(result)
\s匹配空格
str5 =
result = re.findall(r'\s'
,str4)
\s匹配非空格
str5 =
result = re.findall(r'\s'
,str4)
\w 匹配單詞字元和數字
str5 =
result = re.findall(r'\w'
,str4)
\w 匹配非單詞字元和數字
str5 =
result = re.findall(r'\w'
,str4)
*匹配前面的字元出現0次或無限次,即可有可無
+匹配前乙個字元出現1次或者無限次,即至少有一次
?匹配乙個字元出現0次或者1次
str3 =
'abbbbc'
result = re.findall(
'abc'
,str3)
|選擇元字元
str7 =
'a+bhelloa-bhello'
result = re.findall(r'a\+b|a-b'
,str7)
# \+表示轉義字元
()將括號中字元作為乙個分組,只提取括號當中的內容
3,貪婪模式:盡可能多的去匹配
str3 =
'abbbbbbbbb'
result = re.findall(
'ab*'
,str3)
print
(result)
非貪婪模式:剛達到標準就可以
str3 =
'abbbbbbbbb'
result = re.findall(
'ab*?'
,str3)
print
(result)
[email protected]
str1 =
result = re.findall(r'^\[email protected]$'
,str1)
print
(result )
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.簡介 正規表示式是用於文字匹配的工具,它在源字串中查詢與給定的正規表示式相匹配的部分,乙個...