re模块各个方法的用法 正则表达式 (二)
书籍: 正则指引.
re模块:
#基础查找方法
findall(正则, 待匹配字符串) 返回匹配后的所有值 以列表的形式. #比较low
分组优先的问题: 在findall里面会优先显示括号里面的内容. 如果一定要在Python里面显示全部匹配的内容, 必须在前括号后面加上 问号加冒号 (?:) 表示取消分组优先级
search(正则, 待匹配的字符串) 匹配到了返回一个正则对象.通过 group() 可以获取值, 但是如果没有值,则返回None
与分组的问题: search没有优先级的问题, 但是会把分组标号. 用group(标号) 可以获得每个分组内的内容.
match(正则, 待匹配的字符串) 默认在 正则的参数位置上 加^ 表示开头.
# 字符串的操作
split(正则, 待匹配的字符串.) 按照正则表达式的规则去进行切割. 如果想要保留用来分割的工具的内容, 可以在正则外面加上分组.
sub( 正则, 新内容, 待匹配的字符串, 次数) 替换. 把正则的规则替换成新内容
subn(正则, 新内容, 待匹配的字符串, 次数) 返回替换了几次.
#优化代码
complie(正则) 讲正则规律编译成一个对象 此对象,可以调用除了本方法之外的任何re模块里面的方法相对来说很方便. # 节省时间
finditer( 正则, 待匹配的字符串) 迭代功能. 把匹配到的东西 生成一个迭代器. 用group() 可以一个一个取出来. #节省空间
分组命名: (为了前后两个标签保持一致.)
html标签语言. 对于浏览器来说 浏览器和HTML之间有一种约定, 写在一个标识符之内的代码, 可以有一种独立的格式,
(?P<name>正则) 在findall 里面 优先显示 名字叫name 的符合正则规则的内容.
分组索引: 可以根据分组的索引用group(n) 取值.
以上各种方法都有一个flags参数:
re.S : 表示 . 点可以支持换行符. ***
re.M :支持多行模式.
1 lags有很多可选值: 2 3 re.I(IGNORECASE)忽略大小写,括号内是完整的写法 4 re.M(MULTILINE)多行模式,改变^和$的行为 5 re.S(DOTALL)点可以匹配任意字符,包括换行符 6 re.L(LOCALE)做本地化识别的匹配,表示特殊字符集 \w, \W, \b, \B, \s, \S 依赖于当前环境,不推荐使用 7 re.U(UNICODE) 使用\w \W \s \S \d \D使用取决于unicode定义的字符属性。在python3中默认使用该flag 8 re.X(VERBOSE)冗长模式,该模式下pattern字符串可以是多行的,忽略空白字符,并可以添加注释
正则总结:
1, 元字符
2, 量词
3, 小规则
4, 分组命名
5, 贪婪 惰性匹配
6, 每一小段的元素的排放顺序.
re模块总结:
1, findall split 分组优先
2, flags参数
3, 如果在匹配的时候,遇到了没有特点的内容,只能通过匹配不想要的内容,来从中利用分组命名来摘取想要的内容
4, 基础查获匹配
5, 基础的字符串操作
6, 代码优化方法.
模块和包:
模块: ****
1, 什么是模块?
py文件
C语言编译之后的文件.
写好了的代码集合, 可以直接调用他的功能, 这样的东西 就是模块.
2, 为什么要有模块:
1, 内存空间是有限的, 必须存放在硬盘里, 当需要的时候,再加载到内存里.
2, 模块就是把丰富的功能,封装在一个文件里, 等到用的时候直接导入内存就可以使用.
3, 有那些种类的模块:
1, 内置模块.
2, 第三模块.
安装 pip install 模块名.
3, 自定义模块
分模块: 功能独立, 防止代码过长.
包: flask ***
详情内容请看http://www.cnblogs.com/Eva-J/articles/7228075.html#_label10