python 正则匹配 人名,其中,排除出现"支行""公司""银行"的名字
时间: 2023-09-23 08:04:51 浏览: 57
可以使用负向断言来实现排除匹配,具体正则表达式如下:
```python
import re
# 匹配中文姓名,排除出现"支行"、"公司"、"银行"的名字
pattern = r'(?<!支行|公司|银行)[\u4e00-\u9fa5]+'
# 测试样例
text = '张三 李四 支行王五 六七公司 建设银行赵八'
# 匹配结果:['张三', '李四', '赵八']
result = re.findall(pattern, text)
print(result)
```
解释一下正则表达式:
- `(?<!支行|公司|银行)` 表示负向断言,表示不匹配后面是"支行"、"公司"、"银行"的字符串。
- `[\u4e00-\u9fa5]+` 表示匹配一个或多个中文字符。
相关问题
python 正则匹配 排除"支行""银行"
可以使用否定预查来实现匹配除了"支行"和"银行"以外的内容。具体实现可以用如下的正则表达式:
```python
^(?!.*(支行|银行)).*$
```
其中,^表示匹配字符串的开头,$表示匹配字符串的结尾。(?!.*(支行|银行))表示否定预查,即不匹配包含"支行"或"银行"的内容。.*表示匹配任意字符任意次。因此,该正则表达式可以匹配除了"支行"和"银行"以外的任何字符序列。
python 正则匹配 不包含"支行""银行""有限""区"
可以使用否定预测先行断言来实现:
```
import re
text = "某某有限公司支行"
pattern = r"(?!支行|银行|有限|区).+"
result = re.match(pattern, text)
if result:
print(result.group(0))
else:
print("匹配失败")
```
输出:
```
某某
```
解释:
- `(?!支行|银行|有限|区)`:否定预测先行断言,表示后面不应该出现支行、银行、有限、区这些词。
- `.+`:匹配一个或多个任意字符。