正则表达式身份证python
时间: 2025-02-11 10:13:59 浏览: 55
### 使用 Python 正则表达式处理身份证号码
#### 验证身份证号码的有效性
在中国,居民身份证号码由18位字符组成,其中前17位为数字,最后一位可以是数字或字母X。为了验证一个字符串是否符合中国身份证号的标准格式,可定义如下正则表达式:
```python
import re
id_pattern = r'(^\d{15}$)|(^\d{17}([0-9]|X)$)'
```
此模式表示要么是一个长度为15的纯数字序列(早期版本),要么是一个长度为17的数字加上最后一个可能是数字或者是大写字母X的字符。
对于给定的输入`id_number`,可以通过下面的方式来进行匹配测试[^1]:
```python
if re.match(id_pattern, id_number):
print("有效的身份证号码")
else:
print("无效的身份证号码")
```
#### 提取文本中的身份证号码
如果目标是从一段较大的文本中找出所有的潜在身份证号码,则应该采用不同的方法——利用`findall()`函数遍历整个字符串并收集所有符合条件的结果:
```python
text_with_ids = """
这里有一些随机文字以及两个可能存在的身份证号码:12345678901234567X 和 123456789012345678。
"""
# 应用相同的正则表达式去寻找所有可能出现的身份号码
found_ids = re.findall(r'\b\d{15}\b|\b\d{17}[0-9X]\b', text_with_ids)
print(found_ids) # 输出找到的所有身份证号码
```
上述代码片段会打印出从指定文本中发现的所有疑似身份证号码。注意这里的边界断言`\b`确保我们只获取完整的单词形式而不是部分匹配[^3]。
阅读全文
相关推荐
















