import re ‘‘‘ \w, 匹配数字、字母、下划线 \W,非数字字母下划线 \d,匹配数字 \D,非数字 \s,匹配空格、\n,\t, \S,非 [a-zA-Z_] a-z或者A-Z或者下划线中的一个字符 . 匹配所有 * 表示前面的字符有0个或多个 + 前面的字符至少有一个 {n,m} 前面的字符有n——m个 ‘‘‘ print(re.match(‘abc‘,‘abcde‘).group())#从开头就匹配, print(re.search(‘abc‘,‘aaabcabc‘).group()) #查找整个字符串,只要找到一个符合的就停止查找 print(re.findall(‘abc‘,‘abcaaabc‘)) #返回的是个列表,查找整个字符串,返回所有符合规格的字符串[‘abc‘, ‘abc‘] print(re.findall(r‘\w‘,‘ab c * \n \t‘))#[‘a‘, ‘b‘, ‘c‘] print(re.findall(‘\W‘,‘ab 1 2* _\n‘))#[‘ ‘, ‘ ‘, ‘*‘, ‘ ‘, ‘\n‘] print(re.findall(‘\s‘,‘ab 1 2* _\n‘))#[‘ ‘, ‘ ‘, ‘ ‘, ‘\n‘] print(re.findall(‘\S‘,‘ab 1 2* _\n‘))#[‘a‘, ‘b‘, ‘1‘, ‘2‘, ‘*‘, ‘_‘] print(re.findall(‘\d‘,‘ab 1 2* _\n‘))#[‘1‘, ‘2‘] print(re.findall(‘\D‘,‘ab 1 2* _\n‘))#[‘a‘, ‘b‘, ‘ ‘, ‘ ‘, ‘*‘, ‘ ‘, ‘_‘, ‘\n‘] print(re.findall(‘\w_sb‘,‘a_sb b_sb ll_sb‘))#[‘a_sb‘, ‘b_sb‘, ‘l_sb‘] print(re.findall(‘a.c‘,‘abc adddvc abbbbc‘)) #[‘abc‘] print(re.findall(‘a.*c‘,‘abc adddvc abbbbc‘))#[‘abc adddvc abbbbc‘] 贪婪的 print(re.findall(‘a.*?c‘,‘abc adddvc abbbbc‘))#[‘abc‘, ‘adddvc‘, ‘abbbbc‘] ?与*或者+链接就是就是非贪婪模式 print(re.findall(‘ab?‘,‘a ab ab abbbb‘)) #?与字符串链接就是前面的字符是一个或者0个 [‘a‘, ‘ab‘, ‘ab‘, ‘ab‘] print(re.findall(‘ab*‘,‘a ab abb abbbc‘))#[‘a‘, ‘ab‘, ‘abb‘, ‘abbb‘] print(re.findall(‘ab+‘,‘a ab abb abbbc‘))#[‘ab‘, ‘abb‘, ‘abbb‘] print(re.findall(‘ab{2,3}‘,‘a ab abb abbb abbbbb‘))#[‘abb‘, ‘abbb‘, ‘abbb‘] {}这个模式可以代替*,+,? {0,} {1,}{0,1} print(re.findall(r‘(\d{3})-(\d{6,8})‘,‘010-123456 010-12333333‘))#[(‘010‘, ‘123456‘), (‘010‘, ‘12333333‘)] print(re.findall(r‘href=".*"‘,‘<a id="blog_nav_sitehome" class="menu" href="https://www.cnblogs.com/">博客园</a>‘))#[‘href="https://www.cnblogs.com/"‘]
原文:https://www.cnblogs.com/tarzen213/p/11117204.html