跳至正文
View Categories

< 1 min read

主要内容 #

  1. 综合实战:能使用简单的正则表达式进行文本数据的清洗,本节课主要介绍了python中正则表达式使用的流程。正则表达式的内容十分复杂,因此只要求掌握其基本的元字符含义,并简单运用即可

3.电话号码的查询与筛选 #

  • 上节课的电话号码查询功能的函数,它使用了很多代码,却也只能查询类似021-12345678这种模式的电话号码,如何要添加更多的功能,需要我们不断添加代码完善isphonenum()函数,但还有更简单的办法-正则表达式
  • 例如:\d是一个正则表达式,表示一位数字字符,在Python中我们可以使用正则表达式\d\d\d-\d\d\d\d\d\d\d\d,来匹配同样的文本:3个数字一个短横线、8个数字
  • import re #导入re模块
    message='在下午5点钟打电话给我,我的座机:021-12345678,公司座机:021-10067341.'
    print('查找到的电话号码:')
    pattern=re.compile(r'\d\d\d-\d\d\d\d\d\d\d\d')#调用re.compile()返回模式对象,注意r''原生字符串的使用
    res=pattern.search(message)#使用对应的模式匹配字符串,注意从左到右匹配第一个符合模式的匹配对象
    print(res.group())#调用匹配对象的group()方法,打印匹配的字符串
  • 1.导入re模块
  • 2.使用正则表达式创建一个模式对象(re.compile())
  • 3.调用模式对象的search()方法,返回匹配的对象
  • 4.调用匹配对象的group()方法,返回匹配的字符串
  • 4.正则表达式简单介绍 #

    如果我们想在一段文本中筛选出这种格式电话号码,需要对我们的信息进行扫描,程序如下:
  • 正则表达式,又称规则表达式(Regular Expression),用来检索、替换那些符合某个模式(规则)的文本,正则表达式十分有用,以至于技术作家Cory Doctorow声称,在学习编程之前,应该先学习正则表达式
  • 正则表达式的细致介绍和使用参考大师码RE模块说明
  • 正则表达式规定了一系列的元字符,即使用特殊符号表示特定种类的字符或位置,比如’\d’匹配数字(字符),^ 匹配字符串的开始(位置),*重复零次或更多次(重复),+重复一次或更多次(重复)
  • 以下示例中我们使用了模式对象的findall()方法,注意此时返回的是所有符合正则表达式的字符串,组成的列表
    import re #导入re模块
    message='在下午5点钟打电话给我,我的座机:021-12345678,公司座机:021-10067341.'
    print('查找到的电话号码:')
    pattern=re.compile(r'\d\d\d-\d\d\d\d\d\d\d\d')#调用re.compile()返回模式对象
    res=pattern.findall(message)#使用对应的模式匹配字符串,返回匹配的字符串列表
    print(res)#打印匹配的字符串

    习题 #

    1. 参考大师码RE模块说明,尽可能多得写出和’\d\d\d-\d\d\d\d\d\d\d\d’,表示相近意思的正则表达式

    OJ训练题 #

    1、幸运数 – ★★
    2、时间规划 – ★★
    3、自幂数判断 – ★
    4、小杨的握手问题 – ★★★
    5、生日排序 – ★★★★