正则表达式的语法

时间:2021-01-25 19:44:34
"""
1) .  表示任何单个字符
2)[] 字符集, 对单个字符给出取值范围  [abc]表示a、b、c, [a-z]表示a到z单个字符
3)[^]非字符集, 对单个字符给出排除范围, [^abc] 除了a、b、c的单个字符
4)* 前一个字符0次或无限次扩展   abc* 表示ab,abc,abcc,abccc等
5)+ 前一个字符1次或者无限次扩展  abc+ 表示 abc, abcc,abccc等
6)? 前一个字符0次或1次扩展  abc? 表示ab, abc
7)| 左右表达式任意一个   abc|def 表示abc、def
8){m}扩展前一个字符m次, ab{2}c表示abbc
9){m,n}扩展前一个字符m次至n次(含n) ab{1,2}c表示abc、abbc
10)^ 匹配字符串开头  ^abc表示abc且在一个字符串的开头
11)$  匹配字符串结尾  abc$ 表示abc且在一个字符串的结尾
12)() 分组标记,内部只能使用 | 操作符   (abc)表示abc, (abc|def)表示abc、def
13)\d 数字, 等价于[0-9]
14)\w 单词字符 等价于[A-Za-z0-9]

语法实例:
p(Y|YT|YTH|YTHO)?N       'PN'、'PYN'、'PYTHN'、'PYTHON'
PYTHON+                  'PYTHON'、'PYTHONN'......
PY[TH]ON                 'PYTON'、'PYHON'
PY[^TH]?ON               'PYON'、'PYAON'.....除了TH的其他单个字符
PY{:3}N                  PN、PYN、PYYN、PYYYN
经典正则表达式实例:
1)^[A-Za-z]+$     由26个字母组成的字符串
2)^[A-Za-z0-9]+$  由26个字母和数字组成的字符串
3)^-?\d+$      整数形式的字符串
4)^[0-9]*[1-9][0-9]*$  正整数形式的字符串
5)[1-9]\d{5}     中国境内邮政编码,6位
6)[\u4e00-\u9fa5] 匹配中文字符
"""