147. 【应-20-2·难】手机号身份证混合识别

中等 Python 2s 256MB
通过 0/0

📋 题目描述
从一段文本里识别中国大陆手机号与身份证号,并分别计数。 - 手机号:`1[3-9]\d{9}`,恰好 11 位数字; - 身份证号:18 位,前 17 位数字,末位为数字或大小写字母 `X`,即 `\d{17}[0-9Xx]`; - 数字两侧不允许再紧挨数字(即用非数字边界判定),避免长串里截取错误; - 身份证不会被算作手机号,反之亦然(注意先识别身份证再识别手机号能避免冲突)。 输出固定一行:`PHONE:数量 ID:数量`。
📥 输入描述
第一行整数 N(1<=N<=200)。 接下来 N 行任意文本。
📤 输出描述
单行:`PHONE:p ID:c`,其中 p 为手机号数量,c 为身份证数量。
输入样例
2
Phone 13812345678 and 13987654321
ID: 110101199003078888
输出样例
PHONE:2 ID:1
提示:先 `re.findall(r"(?<!\d)\d{17}[0-9Xx](?!\d)", text)` 抽身份证; 把抽到的部分从原文替换成空格后再 `re.findall(r"(?<!\d)1[3-9]\d{9}(?!\d)", text2)` 抽手机号。

登录后提交代码

讨论区 0
登录后参与讨论

还没有讨论,来发表第一条吧!