Python:正则表达式的元字符

#!/usr/bin/env python
# coding:UTF-8


"""
@version: python3.x
@author:曹新健
@contact: [email protected]
@software: PyCharm
@file: 2.正则表达式的元字符.py
@time: 2018/9/15 17:02
"""

'''
单个字符匹配如下:
.匹配除换行符以外的任意字符
[0123456789]  []是字符集合,表示匹配方括号中所包含的任意一个字符
[a-z]    匹配任意一个小写字符 
[A-Z]    匹配任意一个大写字符
[0-9]    匹配任意一个数字
[0-9a-zA-Z]  匹配任意一个数字和字母
[0-9a-zA-Z_]  匹配任意一个数字、字母和_
[^cxj]      匹配除了cxj之外的所有字符,中括号里面的^成为脱字符,表示不匹配集合中的字符
[^0-9]      匹配所有的非数字字符
\d      匹配数字
\D      匹配非数字字符
\w      匹配数字,字母和下划线
\W      匹配非数字,字母和下划线
\s      匹配任意的空白符(空格、换行、回车、换页、制表)同[ \f\n\r\t]
\S      匹配任意的非空白符
'''

'''
锚字符(边界字符)
^       行首匹配,和在[]里的^不是一个意思
$       行尾匹配
\A      匹配字符串开始,它和^的区别是\A只匹配整个字符串的开头,即使在re.M模式下
也不会匹配它的行首
\Z      匹配字符串结尾,它和$的区别是\Z只匹配整个字符串的结尾,即使在re.M模式下
也不会匹配它的结尾
\b      匹配一个单词的边界,也就是单词和空格的位置
        比如r'er\b'能匹配never 不能匹配nerve
\B      匹配非单词的边界
        比如r'er\b'能匹配nerve 不能匹配never
'''

'''
匹配多个字符
(xyz)       匹配小括号内的xyz,作为一个整体去匹配
x?      匹配0个或者1个x  #非贪婪匹配
x*      匹配0个或者任意多个x #贪婪匹配
x+      匹配1个或者任意多个x #贪婪匹配
x{n}        匹配确定的n个x
x{n,}       匹配至少n个x #贪婪匹配
x{n,m}      匹配n到m个x.n<=m
x|y     |表示或,匹配x或y

*? +? x?        最小匹配,通常都是尽可能多的匹配,可以使用这种解决贪婪匹配
(?:x)       类似(xyz),但不表示一个组

'''

猜你喜欢

转载自blog.csdn.net/caoxinjian423/article/details/84476987