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 = 'ashdkjashd@qq.com asdk1321@163.com 4546464@.com asdasd4654@195.com SADASD46464@163.com asdasdg@sohu.com' 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)