Python之正则表达式

正则表达式
    正则表达式主要用来匹配字符串,例如:判断一个字符串是否是一个合法的网址。思想是用描述性的语言给字符串一个规则。re模块中的match函数提供了这种功能,若匹配成功则返回匹配对象,否则返回None。
(一)语法:
  1. \d 表示匹配数字; \w  表示匹配字母或数字; .可以匹配任意字符;\s可以匹配一个空格或者tab;特殊字符如-要加\-转义;
       eg:’\d\d\d’ 可以匹配’007’
           ‘\w\d\d’可以匹配’a78’
          ’00\w’可以匹配’00A’
         ‘ab.’可以匹配’abc’/‘ab0’/‘ab*’等等
  1. 匹配变长的字符串时,*:表示任意长字符;+:表示至少一个字符;?:表示0个或1个;{n}表示n个字符;{n,m}表示n-m个字符
      eg:’\d{3}\s+\d{3,8}’ 表示3个数字,至少一个空格,3-8个数字 ‘010 12345’
          ‘\d{3}\-\d{3,8}’ 
  3.[]表示范围
       eg:[0-9a-zA-Z\_]表示字母数字下划线
             [0-9a-zA-Z\_]+表示至少一个字母数字或下划线
             [a-zA-Z\_][0-9a-zA-Z]{0,19}表示字母或下划线开头,1个字符加上19个字符的长度范围
  1. A|B可以匹配A或者B  eg:[p|P]ython可以匹配python或Python
      ^表示行的开头 eg:^\d表示以数字开头
     $表示行的结束  eg:$\d表示以数字结束
(二)re模块
re模块包含所有正则表达式中的功能,注意\的转义功能  eg:>s=‘a\\b’#’a\b’;使用r前缀可以屏蔽转义:s=r’a\b’#’a\b’
判断正则表达式匹配:
>import re>re.match(r’^\d{3}\-\d{3,8}$’,’010-276122’)>#返回match对象;若匹配失败则返回None(啥都木有)
>test=‘whatever’ >if re.match(r’  ‘,test):print(‘ok’)  else:print(“fail”)
        切分字符串:
    >’a b  c'.split(‘ ‘)#[‘a’,’b’,’ ‘,’c’]
>re.split(r’[\s\,\;]+’,’a,b;;c  d’)  #[‘a’,’b’,’c’,’d’]
分组:()
eg:^(\d{3})-(\d{3,8})$定义了两个组
    >a=re.match(r’^(\d{3})-(\d{3,8})$’,’010-276122’)  #返回match对象
    >a.group(0) #’010-276122’  group(0)返回原始字符串
    >a.group(1)  #’010’ group(1)返回第一个组
    >a.group(2)  #’276122’  group(2)返回第二个组

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值