re模組和compile物件均有的函式
obj = compile(pattern,flags = 0)
功能: 獲取正規表示式物件
引數:
pattern : 乙個字串形式的正規表示式
flags: 標識位,預設為0,可省略
返回值 : 正規表示式物件
注意:flags 可選,表示匹配模式,比如忽略大小寫,多行模式等,具體引數為:
re.i
ignorecase
忽略字母大小寫
re.l
locale
表示特殊字符集 \w, \w, \b, \b, \s, \s 依賴於當前環境。
re.m
multiline
多行模式
re.s
dotall
即為' . '並且包括換行符在內的任意字元(' . '不包括換行符)
re.x
verbose
為了增加可讀性,忽略空格和' # '後面的注釋
#!/usr/bin/env python3
# coding =utf-8
'''正規表示式 re 模組
'''import re
s = '''hello world
hello kitty
nihao china
'''# 乙個字串形式的正規表示式
pattern = '''(?phello) #dog 組
\s+ #空字元
(world) #第二組用來匹配world
'''l = re.findall(pattern, s, re.x | re.i)
# re.i 忽略字母大小寫
# re.x 為了增加可讀性,忽略空格和' # '後面的注釋
print(l)
# [('hello', 'world')]
l = re.findall('.+', s, re.s)
# re.s即為' . '並且包括換行符在內的任意字元
# ' . '不包括換行符
print(l)
# ['hello world\nhello kitty\nnihao china\n']
l = re.findall('^nihao', s)
print(l)
# l = re.findall('^nihao', s, re.m)
# 多行模式,影響 ^ 和 $
print(l)
# ['nihao']
l = re.findall('h\w+', s, re.i)
# 忽略字母大小寫
print(l)
# ['hello', 'hello', 'hao', 'hina']
obj.findall(string,pos,endpos)
功能 : 通過正規表示式匹配字串
引數 : string 目標字串
pos 目標字串的匹配開始位置
endpos 目標字串的結束位置
返回值 : 匹配到的所有內容以列表返回
注意: 如果正規表示式有子組則只顯示子組匹配內容
#!/usr/bin/env python3
# coding =utf-8
import re
pattern = r'\s+'
# \s+ 匹配任意乙個或多個空字元
# 獲取正規表示式物件
obj = re.compile(pattern, flags=0)
# flags 標誌位 可選可忽略
l = obj.findall("abcdabcabab", 1, 9)
print(l)
#
obj.split(string)
功能 : 按照正規表示式切割目標字串
引數 : 目標字串
返回值 : 切割後的內容
# 匹配目標字串用(pattern = r'\s+')進行切割
l = obj.split('hello world hello kitty nihao china')
print(l)
# ['hello', 'world', 'hello', 'kitty', 'nihao', 'china']
obj.sub(replacestr,string,max)
功能: 替換正規表示式匹配到的內容
引數: replacestr 要替換的內容
string 目標字串
max 最多替換幾處
返回值 : 返回替換後的字串
# 替換目標字串('##')中匹配到的內容
s = obj.sub('##', 'hello world nihao china', 2)
print(s)
# hello##world##nihao china
subn(repl,string,count)
功能: 替換正規表示式匹配到的內容
引數: repl 要替換的內容
string 目標字串
count 最多替換幾處
返回值 : 返回替換後的字串和實際替換的個數
# 返回替換後的字串和實際替換的個數
s = obj.subn('##', 'hello world nihao china')
print(s)
# ('hello##world##nihao##china', 3)
Python3 第四課 變數
python是弱型別語言 變數無須宣告即可直接賦值 變數的資料型別可以動態改變 檢視變數型別 type 函式 type 變數名 列印出來 print type 變數名 print 函式可以同時輸出多個變數。語法格式 print value,sep end n file sys.stdout,flus...
Xshell學習第四課 grep與正規表示式
1 grep程式 linux下有文字處理三劍客 grep sed awk grep 文字行過濾工具 awk 報告生成器,作文本輸出格式化 grep包含三個命令 grep egrep fgrep,他們用來進行 行模式 pattern 匹配的 egrep grep e 使用擴充套件的正規表示式進行匹配 ...
Python自學之路 第四課
第4課 測試題 0.請問以下 會列印多少次 我愛魚c!while c print 我愛魚c 答 無限次請寫出與 10 cost 50 等價的表示式 答 10python3 中,一行可以書寫多個語句嗎?答 可以,需要用分號隔開 python3 中,乙個語句可以分成多行書寫嗎?答 可以 用 隔開或者用 ...