python 实现正则校验的方式
时间: 2024-04-30 17:24:47 浏览: 33
在 Python 中,可以通过 `re` 模块来实现正则表达式的校验。下面是一个简单的示例,用于校验一个字符串是否符合一定的规则:
```python
import re
pattern = r'^[a-zA-Z0-9_]+$' # 匹配由字母、数字、下划线组成的字符串
string = 'hello_world123'
if re.match(pattern, string):
print('字符串符合规则')
else:
print('字符串不符合规则')
```
在上述代码中,首先定义了一个正则表达式模式 `pattern`,表示由字母、数字、下划线组成的字符串。然后使用 `re.match()` 方法进行匹配,如果匹配成功,则返回匹配对象,否则返回 `None`。最后根据返回值判断字符串是否符合规则。
相关问题
python正则表达式校验护照
以下是使用Python正则表达式校验护照的示例代码:
```python
import re
passport = input("请输入护照号码:")
# 定义护照号码的正则表达式
pattern = r'^[A-Z]{1}\d{8}$'
# 使用re模块的match函数进行匹配
if re.match(pattern, passport):
print("护照号码格式正确!")
else:
print("护照号码格式错误,请重新输入!")
```
在上述代码中,我们首先使用`import re`语句导入Python的正则表达式模块。然后,我们通过`input()`函数获取用户输入的护照号码,并将其存储在变量`passport`中。
接下来,我们定义了一个正则表达式模式`pattern`,用于匹配护照号码。该正则表达式要求护照号码以一个大写字母开头,后面跟着8个数字。
最后,我们使用`re.match()`函数对用户输入的护照号码进行匹配。如果匹配成功,则输出“护照号码格式正确!”;否则,输出“护照号码格式错误,请重新输入!”。
python正则表达式校验身份证
以下是使用Python正则表达式校验身份证的方法:
```python
import re
def check_id_card(id_card):
# 身份证正则表达式
pattern = re.compile(r'^[1-9]\d{5}(19\d{2}|20[01]\d)(0[1-9]|1[012])(0[1-9]|[12]\d|3[01])\d{3}[\dX]$')
# 匹配身份证号码
match = pattern.match(id_card)
if match:
# 校验码校验
id_card = list(id_card)
id_card_sum = 0
for i in range(17):
id_card[i] = int(id_card[i])
id_card_sum += id_card[i] * (2 ** (17 - i))
id_card_check = (12 - id_card_sum % 11) % 11
if id_card_check == 10:
id_card_check = 'X'
if str(id_card_check) == id_card[-1]:
return True
else:
return False
else:
return False
```
使用方法:
```python
id_card = '110101199003074518'
if check_id_card(id_card):
print('身份证号码校验通过')
else:
print('身份证号码校验不通过')
```
输出结果:
```
身份证号码校验通过
```