本文來自於千鋒教育在阿里雲開發者社區學習中心上線課程《Python入門2020最新大課》,主講人姜偉。
正則修飾符的使用
示例:
import re
# 正則修飾符是對正則表達式進行修飾
# . 表示除了換行以外的任意字符
# x = re.search(r'm.*a', 'sdfmo\nejoasd1')
# print(x) # None
# re.S:讓點 . 匹配換行
x = re.search(r'm.*a', 'sdfmo\nejoasd1', re.S)
print(x)
# re.I 忽略大小寫
y = re.search(r'x', 'good Xyz', re.I)
print(y) # None
# \w:表示的是字母數字和_ +:出現一次以上 $: 以指定的內容結尾
# re.M: 讓 $ 能夠匹配到換行
z = re.findall(r'\w+$', 'i am boy\n you are girl\n he is man', re.M)
print(z) # ['boy', 'girl', 'man']
print(re.search(r'L','hello')) # None
print(re.search(r'L', 'hello', re.I)) # 不區分⼤⼩寫<re.Match object; span=(2, 3),
match='l'>
# \w+$ 表示匹配以⼀個或者多個字⺟結尾
# re.M 可以進⾏多⾏匹配,每個換⾏都認為是⼀個結尾
print(re.findall(r'\w+$','i am boy\n you are girl\n he is man',re.M)) # ['boy', 'g
irl', 'man']
# 不實⽤re.M修飾符,只會匹配到最後的 man
print(re.findall(r'\w+$','i am boy\n you are girl\n he is man')) # ['man']
print(re.search(r'.','\n')) # None . 匹配除了 \n 以外的所有字符
print(re.search(r'.','\n',re.S)) # '\n' 匹配到了 \n
正則匹配規則
1.數字和字母都表示它本身
2.很多字母前面添加 會有特殊含義
3.大部分標點符號都有特殊含義
4.如果使用標點符號,必須加 \
示例:
import re
# 字母x表示它本身
re.search(r'x', 'hello xyz')
re.search(r'5', '23r49534')
print(re.search(r'd', 'good')) # 字母d是普通的字符
print(re.search(r'\d', 'good')) # \d 有特殊含義,不再表示字母 d
print(re.search(r'\d', 'wsdfk4sdfj1')) # <re.Match object; span=(5, 6), match='4'>
# re.search('+','1+2') # 不能直接使用,+ 有特殊含義
print(re.search(r'\+', '1+2'))