Python学习笔记(十七)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python学习笔记(十七)相关的知识,希望对你有一定的参考价值。
一、正则表达式简介
正则表达式是一种用来匹配字符串数据的强大的武器,其设计思想是用一种描述性的语言给字符串定义一个规则,凡是符合该字符串的描述规则的,就认为它匹配了,凡是不符合该字符串描述规则的,就认为其不合法。
二、正则表达式基本知识
\d : 数字
\w : 字母或数字
\s : 空白符
. : 匹配任何一个任意字符
* : 匹配任何长度的任意字符
+ : 至少一个字符串
? : 表示0个或1个字符
{n} : 表示n个字符
{n,m} : 表示n-m个字符,至少n,至多m,包括m
^ : 表示行的开头,^\d表示必须以数字开头
$ : 表示行的结束,^d$表示必须以数字结尾
三、正则表达式进阶
\d{3} : 匹配三个数字
\d{3,8} : 匹配3-8个数字
[0-9a-zA-Z\_] : 匹配一个数字字母后者下划线
[0-9a-zA-Z\_]+ : 匹配至少由一个数字、字母或者下划线组成的字符串
[0-9a-zA-Z\_]* : 匹配至少由一个数字、字母或者下划线组成的字符串
A|B : 匹配A或B
四、常见的正则表达式
http://www.jb51.net/article/76901.htm
五、re模块
Python中提供了re模块来实现对正则表达式的支持,Python中提供了转义字符\,但也提供了r,通过使用r"ab\r"则无需再对字符串中出现的关键字进行相关的转义
# 引入re模块
import re
# 判断字符串是否匹配相关正则表达式
re.match(r‘正则表达式‘,待匹配检测文本) => True/False(返回值)
# 切分字符串
re.split(r‘[\s\,+]‘,‘a,b, c, d‘) => list
# 字符串分组,提供字符串子串
# 正则表达式中使用()表示要提取的分组
m = re.match(r‘分组正则表达式‘,字符串)
m.group(0) #group(0)永远是原始字符串
m.group(1) #第一个分组子串
# 贪婪匹配
# 正则表达式默认的是贪婪匹配,可以通过一定方式将正则表达式变化为非贪婪匹配
六、编译正则表达式
正则表达式在Python语言中执行的时候会先编译正则表达式再去匹配字符串,但如果需要匹配字符串的次数过多,每次都需要匹配正则表达式,那么将十分良妃空间
可以对正则表达式预先进行编译,然后在进行匹配
import re
# 生成遍以后的正则表达式对象
re_compiled = re.compile(r‘正则表达式‘)
# 可以直接使用遍以后的正则表达式去直接匹配一个字符串,因为正则表达式的原始信息已经包含进编译后的正则表达式的对象之中
以上是关于Python学习笔记(十七)的主要内容,如果未能解决你的问题,请参考以下文章