1. 程式人生 > 實用技巧 >正則表示式在python中的應用

正則表示式在python中的應用

import re

a = 'background-image: url("www.ashdjhs.com"); background-position: 150px 160px;'

a1 = re.findall(r"background-image: url\(\"(.*?)\"\); background-position: (.*?)px (.*?)px;", a)

print(a1)

# re.match()嘗試從字串的起始位置匹配一個模式,若不是起始位置匹配成功的話則返回none,只匹配開頭,第二個ab是不會被匹配到的
a2 = re.match('ab', 'abac123abcde
').group() a3 = re.match('abc', 'abac123acde') # print(a2) # print(a3) # re.search()是從左到右開始匹配,,只要找到一個匹配結果就返回,沒有則返回none a4 = re.search('ab', 'acab123abcde').group() # print(a4) # re.sub(),pattern指匹配模式,repl指替換的字串,string指被匹配的字串,count指替換的最大次數,0表示替換所有的匹配, # 刪除字串中的註釋 a6 = re.sub(pattern=r'#.*$', repl='', string='
188-1438-4778 # 這是一個電話號碼!!!', count=0) a7 = re.sub(pattern=r'aaa', repl='啊啊', string='188-1438-4778 aaa # 這aaa是一個電aaa話號碼!!!', count=1) # print(a6) # print(a7) # 刪除非數字(-)的字串 a8 = re.sub(r'\D', '', '188-1438-4778 # 這是一個電話號碼!!!') # print(a8) a9 = 'src="test.jpg" width="60px" height="80px"' # a10沒加?為貪婪模式,會一直匹配到結束
a10 = re.findall(r'src=\".*\"', a9) # a11加了?為非貪模式,指匹配到第一個雙引號就結束 a11 = re.findall(r'src=\".*?\"', a9) # a12加了()是代表設定為組,只獲取組內元素 a12 = re.findall(r'src=\"(.*?)\"', a9) # print(a10) # print(a11) # print(a12) a13 = '[email protected] [email protected] [email protected] [email protected] [email protected] [email protected]' a14 = re.findall(r'[a-z0-9A-Z]+@[0-9a-z]{2,}\.com', a13) # print(a14) a15 = 'one12two2three3four4' a16 = re.split(r'\d+', a15) # print(a16) a17 = "i said, hello world!" aa = re.findall(r'(\w+) (\w+)', a17) aaa = re.findall(r'\w+', a17) a18 = re.sub('(\w+) (\w+)', r'\2 \1', a17) print(aa) print(aaa) print(a18) def func(m): return m.group(1).title() + ' ' + m.group(2).title() a19 = re.sub('(\w+) (\w+)', func, a17) # print(a19) # 匹配不以abc開頭的單詞 a20 = 'abclsjdlaskjd kfjasklabcjlkdas kjasdkjaslkdj 5456465wsdasdas aaakjhdskjfhs kljsjdlsjwoiabc abcsakdjasldjabc' a21 = re.findall(r'\b(?!abc)\w+', a20) # print(a21) # 匹配不以abc結尾的單詞 a22 = re.findall(r'\w+(?<!abc)\b', a20) # print(a22) # 匹配不包含abc的單詞 a23 = re.findall(r'(\b(a(?!bc)|\w(?!abc))((?<!abc)\S(?!abc))*\b)', a20) # print(a23) # print(a23[0]) # print(a23[0][0]) # for i in a23: # print(i[0]) # 匹配包含abc的單詞 a24 = re.findall(r'\b\w*(?=abc)\w*\b', a20) # print(a24)