- 一、永远不要取一个py文件的名字,这个名字和你已知的模块同名
- 二、re模块的功能
- 1、查找类型模块
- 1、findall
- 该模块主要偏向于重大段文字中查找内容,匹配所有字符串,将每个匹配的结果组成一个列表
- 语法 re.findall(正则表达式,待匹配的字符串,flag)
- 2、search
- 该模块主要用于表单验证,只匹配从左到右的第一个内容,返回一个变量,打印结果是一个内存地址,是一个正则匹配结果,通过ret.group( )来获取结果,如果无结果的话,在获取变量时会返回None,再通过group获取结果时会报错
- 语法:ret=re.search(正则表达式,待匹配的字符串)
- 3、match
- 2、字符串处理的扩展
- split
- l=re.split(正则表达式,待操作的字符串)
- 根据正则表达式的结果进行切割,得到的结果是一个列表;若将切的东西加上分组,会将切下的东西留下,按原先顺序放入字符组
- sub
- 语法re.sub(正则表达式,新内容,待替换字符串,次数)
- 将待匹配的字符串中的符合正则表达式的内容替换成新内容
- subn:与sub一致,会返回一个元组,第二个元素会告诉替换次数
- 3、re模块的进阶使用
- compile
- 编译,将正则表达式编译成字节码,在多次使用中不会多次编译,可以解决时间的问题
- 语法,re.compile(xu编译的正则表达式)
- finditer
- 将匹配的内容存放在迭代器之中
- 语法。ret=re.finditer(正则表达式,待匹配的内容),在使用group语句获得结果
- 三、python中正则表达式的特点
- 1、标签语言
- s=<a>..........</a>,这类语言叫做标签语言
- 如果我这样来进行内容获取,ret=re.search('<\w+>(\w+)<(\w+)',s),在使用ret.group( )获取结果的话,我们可以得到所有的项目,即s全部,但我们在group()后面的括号之中加入数字,0,1,2,3,我们会发现取0的时候和什么都不写一样,默认取全部,取1的时候我们会取括号1的内容,取2 的时候我们会取括号2的内容,以此类推
- 同样我们可以给分组命名,语法是:(?P<分组名字>正则表达式>),这样,我们在之后使用group后面加名字也可以将之打印出来。
- 2、分组优先显示
- 我们若这样使用findall,ret=re.findall(“()”,s),在输出这个结果的时候会优先输出括号里面的内容,这是python的规定,若想取消这种优先级,在括号之中加入(?: )
posted on
2018-08-17 16:12
哈尔斯塔特
阅读(
48)
评论()
收藏
举报