#!/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),但不表示一个组
'''
Python:正则表达式的元字符
猜你喜欢
转载自blog.csdn.net/caoxinjian423/article/details/84476987
今日推荐
周排行