我们可以考虑下面一个问题:我们从某个地方(可能是一个文本文件,也可能是网络上的一则新闻)获得了一个字符串,希望在字符串中找出手机号和座机号。当然我们可以设定手机号是11位的数字(注意并不是随机的11位数字,因为你没有见过“25012345678”这样的手机号吧)而座机号跟上一段中描述的模式相同,如果不使用正则表达式要完成这个任务就会很麻烦。

    关于正则表达式的相关知识,大家可以阅读一篇非常有名的博客叫,读完这篇文章后你就可以看懂下面的表格,这是我们对正则表达式中的一些基本符号进行的扼要总结。

    函数 说明
    compile(pattern, flags=0) 编译正则表达式返回正则表达式对象
    match(pattern, string, flags=0) 用正则表达式匹配字符串 成功返回匹配对象 否则返回None
    search(pattern, string, flags=0) 搜索字符串中第一次出现正则表达式的模式 成功返回匹配对象 否则返回None
    split(pattern, string, maxsplit=0, flags=0) 用正则表达式指定的模式分隔符拆分字符串 返回列表
    sub(pattern, repl, string, count=0, flags=0) 用指定的字符串替换原字符串中与正则表达式匹配的模式 可以用count指定替换的次数
    fullmatch(pattern, string, flags=0) match函数的完全匹配(从字符串开头到结尾)版本
    findall(pattern, string, flags=0) 查找字符串所有与正则表达式匹配的模式 返回字符串的列表
    finditer(pattern, string, flags=0) 查找字符串所有与正则表达式匹配的模式 返回一个迭代器
    purge() 清除隐式编译的正则表达式的缓存
    re.I / re.IGNORECASE 忽略大小写匹配标记
    re.M / re.MULTILINE 多行匹配标记

    下面我们通过一系列的例子来告诉大家在Python中如何使用正则表达式。

    例子1:验证输入用户名和QQ号是否有效并给出对应的提示信息。

    例子2:从一段文字中提取出国内手机号码。

    例子3:替换字符串中的不良内容

    例子4:拆分长字符串