首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >【python 正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它

【python 正则表达式:太复杂了所以通过练习-1(电话号码-日期)】编写常见格式的字符串的正则表达式来由浅入深的认识它

作者头像
flos chen
发布2026-01-23 15:04:53
发布2026-01-23 15:04:53
720
举报

1. 匹配电话号码

编写一个程序,从字符串中匹配电话号码。
电话号码的格式为:
  1. 开头是 1
  2. 第二位在3-9之间
  3. 后9位可以是任意数字。
代码如下:
代码语言:javascript
复制
import re
def match_phone_number(string):
    pattern = r"^(1[3-9]\d{9})$"
    match = re.match(pattern, string)
    if match:
        return True
    else:
        return False
string = "1234567"
print(match_phone_number(string)) # False
string = "13555555555"
print(match_phone_number(string)) # True
解释
  1. ^$是开始和结束的标志;
  2. 1表示第一位必须是1;
  3. [3-9]表示第二位必须是3-9之间的数字;
  4. \d表示后面部分是一个数字,{9}这样的数字有9个,不限区间0-9;
我们学到了什么
  1. 知道了开始和结束的标志是 ^ $;
  2. 知道了原来字符的位置有如此严格的占位限制;
  3. 知道了 [] 代表字符集合;
  4. 知道了 3-9 代表区间;
  5. 知道了 \d 代表数字匹配;
  6. 知道了 {} 代表要匹配多少次;

2. 匹配日期

编写一个程序,从字符串中匹配日期。
日期的格式为:
  1. 年月日共有八位数字;
代码如下:
代码语言:javascript
复制
import re
from datetime import datetime

def match_date(string):
    pattern = r"^\d{8}$"  # 更正为8位数字
    match = re.match(pattern, string)
    if match:
        try:
            # 尝试将字符串转换为日期
            datetime.strptime(string, "%Y%m%d")
            return True
        except ValueError:
            return False
    else:
        return False
string = "20210101"
print(match_date(string)) # True
string = "19991231"
print(match_date(string)) # True
解释
  1. ^$是开始和结束的标志;
  2. \d表示后面部分是一个数字,{8}这样的数字有8个,不限区间0-9;
我们学到了什么
  1. 知道了开始和结束的标志是 ^ $;
  2. 知道了原来字符的位置有如此严格的占位限制;
  3. 知道了 \d 代表数字匹配;
  4. 知道了 {} 代表要匹配多少次;
日期的格式应该有更复杂的格式,大家可以去研究研究,但这种应该是最简单了。欢迎留言讨论。

下一部分 邮箱、IP地址

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-01-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 匹配电话号码
    • 编写一个程序,从字符串中匹配电话号码。
    • 代码如下:
    • 解释
    • 我们学到了什么
  • 2. 匹配日期
    • 编写一个程序,从字符串中匹配日期。
    • 代码如下:
    • 解释
    • 我们学到了什么
    • 日期的格式应该有更复杂的格式,大家可以去研究研究,但这种应该是最简单了。欢迎留言讨论。
  • 下一部分 邮箱、IP地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档