python正则匹配姓名
时间: 2023-10-12 17:06:24 浏览: 195
你可以使用正则表达式来匹配姓名。一般来说,姓名的格式是不确定的,所以你可能需要根据具体的需求来编写匹配规则。
以下是一个简单的例子,可以匹配中文或英文的姓名:
```python
import re
pattern = r'^[\u4e00-\u9fa5a-zA-Z]{2,20}$'
name = input("请输入姓名:")
if re.match(pattern, name):
print("姓名匹配成功!")
else:
print("姓名格式不正确!")
```
这个例子使用了正则表达式模块 re,并定义了一个匹配规则,要求姓名只能包含中文字符或英文字符,并且长度在2到20之间。
你可以根据实际情况修改这个匹配规则,例如添加更多限制条件或允许特定的字符。
相关问题
python正则匹配中文姓名
可以使用以下正则表达式来匹配中文姓名:
```
^[\u4e00-\u9fa5]{2,4}(·[\u4e00-\u9fa5]{2,4})*$
```
解释:
- `^` 表示匹配字符串的起始位置。
- `[\u4e00-\u9fa5]` 表示匹配一个中文字符。
- `{2,4}` 表示匹配前面的字符至少2次,最多4次。
- `(·[\u4e00-\u9fa5]{2,4})*` 表示匹配一个中间名,可以有多个,用“·”隔开。
- `$` 表示匹配字符串的结束位置。
使用示例:
```python
import re
name = "张三"
if re.match("^[\u4e00-\u9fa5]{2,4}(·[\u4e00-\u9fa5]{2,4})*$", name):
print("姓名格式正确")
else:
print("姓名格式错误")
```
输出:
```
姓名格式正确
```
注意,这个正则表达式只能匹配符合规范的中文姓名,不能匹配拼音、英文等其他形式的姓名。
python 正则匹配 人名,其中,排除出现"支行""公司""银行"的名字
可以使用负向断言来实现排除匹配,具体正则表达式如下:
```python
import re
# 匹配中文姓名,排除出现"支行"、"公司"、"银行"的名字
pattern = r'(?<!支行|公司|银行)[\u4e00-\u9fa5]+'
# 测试样例
text = '张三 李四 支行王五 六七公司 建设银行赵八'
# 匹配结果:['张三', '李四', '赵八']
result = re.findall(pattern, text)
print(result)
```
解释一下正则表达式:
- `(?<!支行|公司|银行)` 表示负向断言,表示不匹配后面是"支行"、"公司"、"银行"的字符串。
- `[\u4e00-\u9fa5]+` 表示匹配一个或多个中文字符。
阅读全文