• 一、永远不要取一个py文件的名字,这个名字和你已知的模块同名
  • 二、re模块的功能
    • 1、查找类型模块
      • 1、findall 
        • 该模块主要偏向于重大段文字中查找内容,匹配所有字符串,将每个匹配的结果组成一个列表
        • 语法 re.findall(正则表达式,待匹配的字符串,flag)
      • 2、search
        • 该模块主要用于表单验证,只匹配从左到右的第一个内容,返回一个变量,打印结果是一个内存地址,是一个正则匹配结果,通过ret.group( )来获取结果,如果无结果的话,在获取变量时会返回None,再通过group获取结果时会报错
        • 语法:ret=re.search(正则表达式,待匹配的字符串)
      • 3、match
        • 默认只匹配字符串开头,其余与search一致
    • 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)  评论(0)    收藏  举报