首页 > 代码库 > 正则表达式纪要
正则表达式纪要
1.正则表达其实就是一门小型语言。
2 方法
1,findall方法是去吧一个字符串中所有符合规则的匹配出来,并且以一个列表的形式返回。(最常用的)
import re a=‘jhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei‘ b=re.findall(‘erfei‘,a) print b
2,
2 最常用的元字符
1, . ^ $ * + ? {} [] () \ 元字符本身也是普通字符,只不过他有特殊的功能。
2,这些元字符,在[]里面不在具有特殊意义,有3个例外,第一个是 - 表示范围 ^ 尖角符在[]里面表示非的意思,还有 \
3 , \ 反斜杠 如果在元字符前加上反斜杠取消元字符的特殊意义, \ 加上一些普通字符具有特殊意义如\d
1,\d 匹配任何十进制数,相当于数字[0-9]
2,\D 匹配任何非数字字符,相当于[^0-9]
3, \s匹配任何空白字符,相当于类[\t\n\w\r\v]
4, \s匹配任何非空白字符,相当于类[^\t\n\w\r\v]
5, \w 匹配任何字母数字字符,相当于[0-9a-zA-Z]
6, \W 匹配任何非字母数字字符,相当于[^0-9a-zA_Z]
7, \b 匹配一个单词边界,也就是单词和空格间的位置,匹配单词边界包括开始和结束位置,这里的单词是指连续的数字,字母和下划线组成的字符串
注意,\b 的定义是\W 和\w 的交界
import re
f=‘23213212412jjjk12312312221j31k2k12j31231234‘ c=re.findall(‘[a-z]‘,f) print c 1,[ ]他通常来指定一个字符类别,所谓字符类别就是你想匹配一个字符集。 字符可以单个列出也可以用‘-’隔开来给定一个字符范围‘[a-z]‘就是说匹配小写 字母a到z之间的所有字母(包含啊a和z),如果想匹配大写字母就是[A-Z] 数字就是[0-9]
import re a=‘jhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei‘ b=re.findall(‘er.ei‘,a) print b . 号这个点表示匹配除了换行符以外的所有字符(通配符)
import re a=‘erfeijhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei‘ b=re.findall(‘^er.ei‘,a) print b ^ 尖角符表示开始位置,也就是说只有在开始位置存在符合规则的就可以匹配到,否则就匹配不到(只匹配开头位置的一个)
import re a=‘erfeijhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei‘ b=re.findall(‘er.ei$‘,a) print b $ 这个符号表示匹配的终止位置,(只匹配终止位置)如果有就返回, 没有就为空
#!coding=utf-8 import re a=‘jhfofhasohclchjzxlcerfeikfjaslfj;lfjerfei‘ b=re.findall(‘er.{,3}ei‘,a) print b # * + ? { } 都表示重复 *号表示0到多次就是说*号前面的字符出现0到无限次都能匹配,+号表示1到多次,就是说如果+号前字符出现0次就匹配不到了 # ? 号表示0到一次 ,{} 表示匹配范围{5}就是匹配5次如果是{1,5}表示匹配1到5次,就是说你想几次就几次(太好用了)
正则表达式纪要