\d 数字:[0-9]
\D 非数字:[^\d]
\s 匹配任何空白字符:[<空格>\t\r\n\f\v]
\S 非空白字符:[^\s]
\w 匹配包括下划线在内的任何字字符:[A-Za-z_0-9]
\W 匹配非字母字符,即匹配特殊字符
\A 仅匹配字符串开头,同^
\Z 仅匹配字符串结尾,同$
\b 单词边界 eg: 严格匹配abc \babc\b
(?P
(?P=name) 引用别名为
re模块中常用功能函数:
1、compile() 编译正则表达式模式,返回一个对象的模式
格式:
re.compile(pattern,flags=0)
pattern: 编译时用的表达式字符串。
flags 编译标志位,用于修改正则表达式的匹配方式
flags类型:
re.S(DOTALL) 使.匹配包括换行在内的所有字符
re.I(IGNORECASE)使匹配对大小写不敏感
re.L(LOCALE)做本地化识别(locale-aware)匹配,法语等
re.M(MULTILINE) 多行匹配,影响^和$
re.X(VERBOSE) 该标志通过给予更灵活的格式以便将正则表达式写得更易于理解
re.U 根据Unicode字符集解析字符,这个标志影响\w,\W,\b,\B
2、match() 决定RE是否在字符串刚开始的位置匹配
格式:
re.match(pattern, string, flags=0)
3、search()
格式:
re.search(pattern, string, flags=0)
re.search函数会在字符串内查找模式匹配,只要找到第一个匹配然后返回
match和search一旦匹配成功,就是一个match object对象,而match object对象有以下方法:
group() 返回被 RE 匹配的字符串
start() 返回匹配开始的位置
end() 返回匹配结束位置
span() 返回一个元组包含匹配 (开始,结束) 的位置
groups() 方法返回一个包含正则表达式中所有小组字符串的元组,从 1 到所含的小组号,通常groups()不需要参数,返回一个元组,元组中的元就是正则表达式中定义的组
print(re.search("([0-9])([a-z])([0-9])",a).group(3))
4、findall()
re.findall遍历匹配,可以获取字符串中所有匹配的字符串,返回一个列表
格式:
re.findall(pattern, string, flags=0)
5.finditer()
搜索string,返回一个顺序访问每一个匹配结果(Match对象)的迭代器。找到 RE 匹配的所有子串,并把它们作为一个迭代器返回
re.finditer(pattern, string, flags=0)
6、split()
按照能够匹配的子串将string分割后返回列表
格式:
re.split(pattern, string[, maxsplit])
maxsplit用于指定最大分割次数,不指定将全部分割
7、sub() re.sub(正则表达式,替换成的字符串,原字符串)
使用re替换string中每一个匹配的子串后返回替换后的字符串
re.sub(pattern, repl, string, count)
re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配
?,+?,??,{m,n}? 前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配
为桥东等地区用户提供了全套网页设计制作服务,及桥东网站建设行业解决方案。主营业务为成都做网站、网站制作、桥东网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!