正規表示式很神奇啊
# -*- coding:utf-8 -*-
''''''
import re
def print_match_res(res):
"""列印匹配物件內容"""
if res is not none:
print(res.group())
else:
print(none)
# 兩種匹配方式:
pattern="[a-z][a-z]+"
# 一、使用re模組函式進行匹配
res=re.match(pattern,"tom is a good boy") # 匹配,返回匹配物件
print(type(res))
print(res.group())
# 二、使用預編譯後的正規表示式物件的方法進行匹配
obj_pattern=re.compile(pattern) # 預編譯,返回正規表示式物件
print(type(obj_pattern))
res=obj_pattern.match("tom is a good boy") # 匹配,返回匹配物件
print(type(res))
print(res.group())
# 匹配物件的group()和groups()方法
pattern="\d-\d"
obj_pattern=re.compile(pattern)
print(res.group()) # 返回整個匹配或特定子組
print(res.groups()) # 返回包含全部子組的元組
# match():從起始部分開始匹配,如果成功,返回匹配物件;失敗,返回none。只匹配一次
pattern="my"
# res=re.compile(pattern).match("my name is li")
res=re.match(pattern,"my name is li")
print_match_res(res)
# search(): 從任意位置開始匹配,如果成功,返回匹配物件;失敗,返回none。只匹配一次
pattern="my"
# res=re.compile(pattern).search("it's my dog")
res=re.search(pattern,"my name is li")
print_match_res(res)
# 查詢全部
# findall(),finditer()
res=re.findall(r"th\w+","this and that",re.i)
print(res)
res=re.finditer(r"th\w+","this and that",re.i)
print(res)
print(next(res).group(),next(res).group())
# 替換
# sub(),subn()
res=re.sub("funny","fool","you are so funny")
print(res)
res=re.subn("funny","fool","you are so funny")
print(res)
# 分割
# splite()
res=re.split("\.","mr.smith")
print(res)
print("#"*50)
# 擇一匹配符號 a|b
pattern="i|you|she"
res=re.compile(pattern,flags=re.ignorecase).match("i love you")
print_match_res(res)
res=re.compile(pattern,flags=re.i).search("who love you")
print_match_res(res)
# 匹配任意單個字元 .
# 字符集 [abc] [a-z0-9]
pattern="[a-za-z0-9_]*\."
res=re.match(pattern,"python3.?")
print_match_res(res)
# 特殊字元 \d \w \s \b \\
# 重複 + ? *
# 分組 (...)
pattern="\w+@(\w\.)*([a-z]*)"
res=re.match(pattern,"[email protected]")
print_match_res(res)
res=re.match(pattern,"[email protected]")
print_match_res(res)
print(res.group(0),res.group(1),res.group(2),sep="\t")
print(res.groups())
# 匹配字串的起始和結尾,單詞邊界 ^a z$ \a \z \b \b
pattern=r"^the"
# pattern=r"\athe"
res=re.search(pattern,"the end of the world")
print_match_res(res)
res=re.search(pattern,"they smile")
print_match_res(res)
pattern=r"cry$"
# pattern=r"cry\z"
res=re.search(pattern,"they cry")
print_match_res(res)
res=re.search(r"\bthe","bit the dog")
print_match_res(res)
res=re.search(r"\bhe","bit the dog")
print_match_res(res)
Python中正規表示式的用法
在這裡跟大家分享乙個python程式設計過程中的小知識點 正規表示式!那正規表示式到底是什麼呢?又是用來幹什麼的呢?正規表示式 是包含文字和特殊字元的字串,為高階的文字模式匹配,抽取,與文字形式的搜尋和替換功能提供了基礎 python通過標準庫re模組來支援正規表示式,re 模組使 python 語...
python中正規表示式
python中正規表示式語法與linux中的相容 檢視正規表示式 python提供re模組,包含所有正規表示式的功能。由於python的字串本身也用 轉義,所以要特別注意 s abc 001 python的字串 對應的正規表示式字串變成 abc 001 建議使用python的r字首,就不用考慮轉義的...
Python 中 正規表示式
一 最近要對字串執行很多操作,所以學了正規表示式 不得不說正規表示式對字串的操作還是很給力的 runoob上面的教程 python中的正規表示式 正規表示式教程 python中要使用正規表示式,首先要匯入re模組 import re 二 常用函式 或者說方法 re.match 作用 嘗試從字串的起始...