导入 re.findall | 返回包含所有匹配项的列表 | re.finditer | 返回一个可迭代的匹配对象(每个匹配一个) | re.search | 如果字符串中的任意位置存在匹配项,则返回一个 Match 对象 | re.split | 返回一个列表,其中字符串在每次匹配时被拆分 | re.sub | 用字符串替换一个或多个匹配项 | re.compile | 编译正则表达式模式供以后使用 | re.escape | 返回所有非字母数字反斜杠的字符串 |
re.I | re.IGNORECASE | 忽略大小写 | re.M | re.MULTILINE | 多线 | re.L | re.LOCALE | 使\w , \b ,\s 语言环境依赖 | re.S | re.DOTALL | 点匹配所有(包括换行符) | re.U | re.UNICODE | 使\w , \b , \d , \s unicode 依赖 | re.X | re.VERBOSE | 可读风格 |
re.search()>>> sentence = 'This is a sample string' >>> bool(re.search(r'this', sentence, flags=re.I)) True >>> bool(re.search(r'xyz', sentence)) False
re.findall()>>> re.findall(r'\bs?pare?\b', 'par spar apparent spare part pare') ['par', 'spar', 'spare', 'pare'] >>> re.findall(r'\b0*[1-9]\d{2,}\b', '0501 035 154 12 26 98234') ['0501', '154', '98234']
re.finditer()>>> m_iter = re.finditer(r'[0-9]+', '45 349 651 593 4 204') >>> [m[0] for m in m_iter if int(m[0]) < 350] ['45', '349', '4', '204']
re.split()>>> re.split(r'\d+', 'Sample123string42with777numbers') ['Sample', 'string', 'with', 'numbers']
re.sub()>>> ip_lines = 'catapults\nconcatenate\ncat' >>> print(re.sub(r'^', r'* ', ip_lines, flags=re.M)) * catapults * concatenate * cat
re.compile()>>> pet = re.compile(r'dog') >>> type(pet) <class '_sre.SRE_Pattern'> >>> bool(pet.search('They bought a dog')) True >>> bool(pet.search('A cat crossed their path')) False
|