出生日期的正则表达式Python
时间: 2023-10-14 14:24:55 浏览: 58
以下是一个匹配常见日期格式的Python正则表达式示例:
```python
import re
date_regex = r'\b(?:0?[1-9]|[12][0-9]|3[01])[./-](?:0?[1-9]|1[0-2])[./-](?:\d{2})?\d{2}\b'
test_string = 'My birthday is on 05/18/1990'
match = re.search(date_regex, test_string)
if match:
print("Found a date in the string:", match.group())
else:
print("No date found in the string.")
```
在上面的示例中,我们首先导入了re模块,然后定义了一个正则表达式`date_regex`,该表达式匹配了常见的日期格式,例如`05/18/1990`。我们使用re.search()函数在测试字符串中查找匹配项,并使用.group()方法获取匹配的字符串。如果找到了日期,则在控制台中打印该日期,否则打印未找到日期的消息。
相关问题
身份证号码的正则表达式python
身份证号码的正则表达式可以使用Python内置的re模块来实现,具体代码如下:
```python
import re
pattern = r'^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dXx]$'
id_card = '110101199003074518'
if re.match(pattern, id_card):
print('身份证号码格式正确')
else:
print('身份证号码格式错误')
```
其中,正则表达式的含义如下:
- `^`:匹配字符串的开头
- `[1-9]`:匹配第一位数字,不能为0
- `\d{5}`:匹配6-10位数字
- `(18|19|20)\d{2}`:匹配11-14位数字,表示出生年份,必须是18、19或20开头的4位数字
- `(0[1-9]|1[0-2])`:匹配15-16位数字,表示出生月份,必须是01-12之间的2位数字
- `(0[1-9]|[1-2]\d|3[0-1])`:匹配17-18位数字,表示出生日期,必须是01-31之间的2位数字
- `\d{3}`:匹配19-21位数字,表示顺序码,可以是任意3位数字
- `[\dXx]`:匹配最后一位数字或字母X或x
- `$`:匹配字符串的结尾
如果身份证号码符合以上规则,则返回“身份证号码格式正确”,否则返回“身份证号码格式错误”。
python正则表达式身份证
下面是一个Python正则表达式,可以用于匹配18位身份证号码:
```python
import re
id_pattern = re.compile(r'^\d{6}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\d|3[0-1])\d{3}[\dX]$')
id_number = '123456199001011234'
if id_pattern.match(id_number):
print('Valid ID number')
else:
print('Invalid ID number')
```
其中,正则表达式`^\\d{6}(18|19|20)\\d{2}(0[1-9]|1[0-2])(0[1-9]|[1-2]\\d|3[0-1])\\d{3}[\\dX]$`的含义如下:
- `^`:匹配输入字符串的开始位置。
- `\d{6}`:匹配6个数字,表示身份证前6位地址码。
- `(18|19|20)`:匹配18、19、20中的一个,表示出生年份的前两位。
- `\d{2}`:匹配2个数字,表示出生年份的后两位。
- `(0[1-9]|1[0-2])`:匹配01-12中的一个,表示出生月份。
- `(0[1-9]|[1-2]\d|3[0-1])`:匹配01-31中的一个,表示出生日期。
- `\d{3}`:匹配3个数字,表示出生日期之后的顺序码。
- `[\dX]`:匹配数字或字母X,表示校验位。
如果要匹配15位身份证号码,只需要将正则表达式中的前6位地址码和后3位顺序码修改即可。