python re模块和正则表达式(2)

小明
小李
小巧

  ?表示重复零次或一次,即只匹配"小"后面一个任意字符  
小.*   小明和小李子和小巧玲珑   小明和小李子和小巧玲珑   *表示重复零次或多次,即匹配"小"后面0个或多个任意字符  
小.+   小明和小李子和小巧玲珑   小明和小李子和小巧玲珑   +表示重复一次或多次,即只匹配"小"后面1个或多个任意字符  
小.{1,2}   小明和小李子和小巧玲珑  

小明和
小李子
小巧玲

  {1,2}匹配1到2次任意字符  

注意:前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配

正则   待匹配字符   匹配
结果
  说明  
小.*?   小明和小李子和小巧玲珑  

  惰性匹配  
2.4 字符集[][^] 正则   待匹配字符   匹配
结果
  说明  
小[明李子巧玲珑]*   小明和小李子和小巧玲珑  

小明
小李子
小巧玲珑

  表示匹配"小"字后面[明李子巧玲珑]的字符任意次  
小[^和]*   小明和小李子和小巧玲珑  

小明
小李子
小巧玲珑

  表示匹配一个不是"和"的字符任意次  
[\d]   456bdha3  

4
5
6
3

  表示匹配任意一个数字,匹配到4个结果  
[\d]+   456bdha3  

456
3

  表示匹配任意个数字,匹配到2个结果  
2.5 分组 ()与 或 |[^]

身份证号码是一个长度为15或18个字符的字符串,如果是15位则全部由数字组成,首位不能为0;如果是18位,则前17位全部是数字,末位可能是数字或x,下面我们尝试用正则来表示:

正则   待匹配字符   匹配
结果
  说明  
^[1-9]\d{13,16}[0-9x]$   110101198001017032  

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/0911597c7831db1900cf3b8df97a695b.html