import re'''
字符串切割'''str1= "allen is a good man"
print(str1.split())
print(re.split((r" +"),str1))'''
re.finditer函數
原型:finditer(pattern, string, flags=0)
pattern: 匹配的正則表達式
string: 要匹配的字符串
flags:標志位,用于控制正則表達式的匹配方式,值如下
re.I 忽略大小寫
re.L 做本地話識別
re.M 多行匹配,影響^和$
re.S 是.匹配包括換行符在內的所有字符
re.U 根據Unicode字符集解析字符,影響\w \W \b \B
re.X 使我們以更靈活的格式理解正則表達式
參數:
功能:與findall 類似,掃描整個字符串,返回的是一個迭代器
'''
str3 = "allen is a good man !allen is a nice man! allen is a handesome man"
d =re.finditer(r"allen ",str3)
while 1:try:l = next(d)print(d)except StopIteration as e :break'''
字符串的替換和修改
def sub(pattern, repl, string, count=0, flags=0):
def subn(pattern, repl, string, count=0, flags=0):
pattern: 正則表達式(規則)
repl: 指定的用來替換的字符串
string: 目標字符串
count: 最多替換次數
flags: 標志位
功能:在目標字符串中以正則表達式的規則匹配字符串,
再把它們替換成制定的字符串。可以指定替換的次數,
如果不指定,默認替換所有匹配的字符串區別:前者返回一個被替換的字符串,后者返回一個元組第一個元素為替換的字符串第二個元素為替換次數'''str5 = "allen is a good good good man"
print(re.sub(r"(good)","nice",str5))
print(re.subn(r"(good)","nice",str5,count=1))'''
分組:
概念:除了簡單的判斷是否匹配之外,正則表達式還有提取字串中的功能用()表示的就是提取分組
'''str6 = "allen is a good man !allen is a nice man! allen is a handesome man"str3 = "010-53247654"
# m = re.match(r"((\d{3})-(\d{8}))",str3)
m = re.match(r"(?P<first>\d{3})-(?P<last>\d{8})",str3)
print(m)
print(m.group(0))
print(m.group(1))
print(m.group(2))
# print(m.group(3))
print(m.groups())'''
編譯:當我們使用正則表達式時,re模塊會干兩件事1、編譯正則表達式,如果正則表達式本身不合法,會報錯
2、用編譯后的正則表達式去匹配對象compile (pattern,flags= 0)'''pat = r"^1[34578]\d{9}$"
#編譯成正則對象
re_telephon = re.compile(pat)
print(re_telephon.match("18332191389"))#re模塊調用
#re對象調用
#re.match(pattern, string, flags=0)
#re_telephon.match(string)
#re.search(pattern, string, flags=0)
#re_telephon.search(sting)
# re.findall(pattern, string, flags=0)
# re_telephon.findall(string)
#re.finditer(pattern, string, flags=0)
#re_telephon.finditer(string)
#re.split(pattern, string, maxsplit=0, flags=0)
#re_telephon.split(string, maxsplit=0)
#re.sub(pattern, repl, string, count=0, flags=0)
#re_telephon.sub(repl, string, count=0)
#re.subn(pattern, repl, string, count=0, flags=0)
#re_telephon.subn(repl, string, count=0)
?