正则表达式的基础
Python有关正则表达式的方法是在re模块内,因此使用之前需要导入re模块!
import re #导入re模块
使用re.compile()建立Regex对象:
Regex是Regular expression的简称,re模块内有compile方法,可以将准备搜寻的字符串的正则表达式当作字符串参数放在此方法内,然后传回一个Regex对象。
操作符 | 说明 | 例子 |
. | 除了回车和换行符以外的任意字符 | |
[ ] | 字符集,对单个字符给出取值范围 | [abc] 表示匹配 a、b、c,[a-z] 表示 a 到 z 单个字符 |
[^] | 非字符集,对单个字符给出排除范围 | [^abc] 表示匹配 非 a、非 b、非 c 的单个字符 |
* | 前一个字符匹配 0 次或多次 | abc* 表示 ab、abc、abcc、abccc 等 |
+ | 前一个字符匹配 1 次或多次扩展 | abc+ 表示 abc、abcc、abccc 等 |
? | 前一个字符 0 次或 1 次 | abc? 表示 ab、abc |
| | 左右表达式任意一个(或运算符) | abc|def 表示 abc 或者 def |
{m} | 扩展前 1 个字符 m 次 | ab{2}c,表示 abbc |
{m,n} | 扩展前 1 个字符 m 到 n 次 | ab{1,2}c,表示 abc、abbc |
^ | 匹配字符串开头 | ^abc 表示 abc 在字符串开头 |
$ | 匹配字符串结尾 | abc$ 表示 abc 在字符串结尾 |
() | 分组标记,内部仅能使用 | 操作符 | (abc) 表示 abc |
\d | 数字,等价于 [0-9] | c++中3.14:([\\.\\d]+) |
\w | 字符,等价于 [A-Za-z0-9] |
re库的基本用法
re库的主要函数:基础函数 compile();
功能函数 search()、match()、findall()、spilt()、finditer()、sub()等.
在 Python 中,表示原生字符串,需要在字符串前面加上 r。
例如 my_str = 'i'm pony!'在程序中会直接报错,如果希望字符串中 ' 可以正常运行,需要加
上转义字符 \,修改为 my_str = 'i\'m pony!'。
但这样结合上文正则表达式中的操作符,就会出现问题,因为 \ 在正则表达式中是有真实含义的,如果你使用 re库 去匹配字符串中的 \,那需要使用 4 个反斜杠,为了避免这种情况出现,引入了原生字符串概念。
# 不使用原生字符串的正则表达式 "\\\\"
# 使用原生字符串的正则表达式 r"\\"