1. 常用的元字符
1. . 匹配任意字符,除换行符\n外
re.search(r'[a-z].*', 'python\[email protected]') python [a-z]表示小写字母,.表示匹配除换行符外任意字符,*表示0次或多次
2. * 匹配零次或多次符合项,贪婪模式
re.search(r'@[0-9]*', '[email protected]') @ *表示匹配0次或多次,@后面虽然没有出现数字,但是匹配上了
3. + 匹配1次或多次符合项
re.search(r'@[0-9]+', '[email protected]') None +表示1次或多次,@后面没有出现数字,所以结果匹配不上
4. ? 匹配0个或1个符合项,非贪婪模式
re.findall(r'\d+[a-z]?', '[email protected]') ['12p', '123', '11'] \d+为1个或多个数字后面存在0个或者1个小写字母
5. ^ 以什么开头,配合re.M多行模式
re.search('^[0-9]+', 'php css\n11. com', re.M) qq 多行模式下
re.search('^[q]+', 'php css\n11. com') None 没有多行模式,匹配不到结果
re.search('^[q]+', 'php 11qq. com') None qq不在行的开头,匹配不到
6. $ 以什么结尾,和^作用相反
re.search('[0-9]+$', 'php 11\nqq. com', re.M) 11 多行模式,否则无效
re.search('[0-9]+$', 'php 11\nqq. com') None 非多行模式,匹配不到
re.search('[0-9]+$', 'php 11qq. com') None 不在行尾,也不行
7. | 或 表达式,匹配其中任意一项即可
re.search(r'^[a-z]+|^[0-9]+', '[email protected]') 12 匹配以字母开头或者是数字开头
8. ( ) 对正则表达式分组并记住匹配的文本,group
re.search(r'([0-9]*)@([0-9]*)', '[email protected]').group(0) 123@11 这里以@为中点分成两组,参数0为匹配所有分组内容
re.search(r'([0-9]*)@([0-9]*)', '[email protected]').group(1) 123 参数1则是匹配第一个分组的内容
re.search(r'([0-9]*)@([0-9]*)', '[email protected]').group(0) 11 参数2则是匹配第二个分组的内容
9. { } 匹配指定范围数量的数据,一个参数时是指定个数,两个参数时是指定范围
re.findall(r'[qq]{2}', '[email protected]') ['qq', 'qq'] 一个参数时是指定的字符数量
re.findall(r'q{2,4}', '[email protected]') ['qqq', 'qq','qqqq'] 两个参数是一个范围值,即2到4个q
10. [ ] 匹配当中的所有符合项
re.findall(r'[0-9,@]', '[email protected]') ['2', '3', '@', '4'] 匹配数字和@符号
11. [ ^ ] 匹配当中以外的内容
re.findall(r'[^a-z,@]', '[email protected]') ['2', '3', '4', '.'] 匹配除了小写字母和@外的其他字符
12. \ 反转义字符,使\失去转义意义
re.findall(r'\.\w', '[email protected]') ['.c'] .表示任意字符,\.只能匹配 .
标签:11,qq,search,匹配,re,Python,正则表达式,com From: https://www.cnblogs.com/chf333/p/17155595.html