zoukankan      html  css  js  c++  java
  • Python自动化开发从浅入深-语言基础(正则表达式)

      文本就是由文字字符串组成的,字符串就是0个到多个字符的序列,而常说的某个字符串匹配某个正则表达式,就是字符串中有部分是符合表达式的条件。   

      正则表达式是处理字符串的强大工具,它通过一定的语法规则查找匹配字符串,并返回自己想获取的字符串值。

    即让字符串与某种模式匹配,而获取一个新的序列

      如要使用正则表达式语法,需import re模块,然后使用 r"正则表达式" (解释性正则定义)定义正则规则,也可通过 re.compile(r"正则表达式") (编译性正则定义)进行正则定义,编译性正则定义效率较解释性正则定义要高。

    一、正则表达式元字符包括:

    . ^ $ * + ? { [ ]  | ( )

    元字符是正则表达式语法的关键字,具有语法规则,如下例:...表示在a和b之间有3个任意字符,匹配时只需首尾字符是a和b,中间有三个任意字符便能匹配。
     

    二、预定义字符集

    d  匹配任何十进制数;它相当于类 [0-9]。
    D 匹配任何非数字字符;它相当于类 [
    ^0-9]。
    s 匹配任何空白字符;它相当于类 [
    "t"n"r"f"v]。

    S 匹配任何非空白字符;它相当于类 [^ "t"n"r"f"v]。

    w 匹配任何字母数字字符;它相当于类 [a-zA-Z0-9_]。
    W 匹配任何非字母数字字符;它相当于类 [
    ^a-zA-Z0-9_]。
      
    
    

    三、字符匹配

    .   匹配除换行符外的任意字符
    可以将一个字符进行转义成其他意思。保留特殊字符的本意。下例中的+号是元字符,有正则语法功能,如需表示原意,则需加上转义符
    [字符集] 可以匹配字符串中可以是字符集中的任意字符。下例[abc]表示只要是其中的任意一个字符便匹配。

     四、匹配字符的数目符号

    *      对前一个字符匹配0或者无限次,''是对数字0次的匹配结果
    + 对前一个字符匹配1或者无限次
    ? 对前一个字符匹配0或1次,下例中对 -号的匹配可有可无
    {m} 对前一个字符匹配m次,下例中只匹配2个数字
    {m,n} 对前一个字符匹配m到n次,下例中匹配2到4个数字的值

    五、匹配边界符号

    ^  或 A   对字符串的开头字符串匹配,下例中只匹配头部的字符a
    $ 或  对字符串的尾部字符串匹配,下例中只匹配尾部字符b
     对w和W之间的字符进行
    B    [
    ^]

    六、逻辑与分组

    |          或的意思,对左右字符任意匹配一个,匹配顺序从左到右
    
    (...)      分组,

    七、正则表达式函数

    match(pattern, string)    利用pattern正则语法搜索字符串,查找到开头相符合的子字串
     
    "a123abab"可以搜索到a字符,"123abab"搜索不到a字符。
    search(pattern, string)    利用pattern正则语法搜索字符串,查找到第一个相符的子字串
      
    match和serch搜索到的子字串,可以用其返回值的group()函数进行显示。


    sub(pattern, replacement, string) 利用pattern正则语法搜索字符串,找到后,用replacement子字串替换搜索到的子字串。
      
    
    
    split(pattern,string)     以正则表达式作为分割字符串,将分割后的所有子字符串放在一个list中返回


    findall(pattern,string) 根据正则表达式搜索字符串,将所有符合的子字符串放入list中返回  

     

  • 相关阅读:
    java中的Class类
    装机
    CSS入门
    初级HTML
    IO加强
    Lambda表达式
    IOStream-基础
    JavaSE阶段基础内容(不包括I/O,常用类,集合)
    markdown学习
    Log4j配置详解
  • 原文地址:https://www.cnblogs.com/whiggzhaohong/p/5183561.html
Copyright © 2011-2022 走看看