正则表达式:
正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。
Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。
re 模块使 Python 语言拥有全部的正则表达式功能。
compile 函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象。该对象拥有一系列方法用于正则表达式匹配和替换。
re 模块也提供了与这些方法功能完全一致的函数,这些函数使用一个模式字符串做为它们的第一个参数。
正则表达式修饰符 - 可选标志
正则表达式可以包含一些可选标志修饰符来控制匹配的模式。修饰符被指定为一个可选的标志。多个标志可以通过按位 OR(|) 它们来指定。如 re.I | re.M 被设置成 I 和 M 标志:
修饰符 | 描述 |
---|---|
re.I | 使匹配对大小写不敏感 |
re.L | 做本地化识别(locale-aware)匹配 |
re.M | 多行匹配,影响 ^ 和 $ |
re.S | 使 . 匹配包括换行在内的所有字符 |
re.U | 根据Unicode字符集解析字符。这个标志影响 \w, \W, \b, \B. |
re.X | 该标志通过给予你更灵活的格式以便你将正则表达式写得更易于理解。 |
re.match函数re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。
re.match与re.search的区别
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;
re.search匹配整个字符串,直到找到一个匹配。
re.match:
import re
astr="""Python8正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。4d4f5g
5Python 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。34 5
re 模块使 Python 语言拥T有全部的正则表达式功能。 6 6 79 2 44 9 3275
3compile
"""
print(re.match("Python",astr).group()) #搜索出Python,并取出这个字符串
执行结果:
Python
re.search:
import re
astr="""8正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。4d4f5g
5Java 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。34 5
re 模块使 Python 语言拥T有全部的正则表达式功能。 6 6 79 2 44 9 3275
3compile
"""
print(re.search("Java",astr).group()) #搜索出Java,并取出这个字符串
执行结果:
Java
findall函数
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
re.findall:
import re
astr="""8正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配。4d4f5g
5Java 自1.5版本起增加了re 模块,它提供 Perl 风格的正则表达式模式。34 5
re 模块使 Python 语言拥T有全部的正则表达式功能。 6 6 79 2 44 9