我试图打印带有前缀的名称,但对于给定名称,它无法按预期工作,如下所示
Python版本3.7.7
string4 = 'Mr. Venkat Mr Raj Mr.RK Mr T Mrs Venkat **Mrs. Raj** Ms Githa Ms. Seetha'
re.findall('[Mm][r-sR-S].?\s?[a-zA-Z]*\w', string4)
输出:
['Mr. Venkat',
'Mr Raj',
'Mr.RK',
'Mr T',
'Mrs Venkat',
'Mrs',
'Ms Githa',
'Ms. Seetha']
Tags:
我将在这里使用模式
\bMr?s?\.?\s*\w+\b
:这张照片是:
您当前模式的原因是什么
不匹配
Mrs. Raj
是指上面只能匹配M
后跟r
,但是s
不在您的模式中。字符类[r-sR-S]
只能匹配一个字母,而不能匹配两个奖励:这一款同样适用于Miss
结果
更新:基于@tripleee的评论。为了避免像
M. Name
或Mris
这样的假阳性,我们应该列出所有可能的情况这对我来说比以前的正则表达式更容易阅读,但是如果不能确定大小写,我们必须添加更多的大小写
相关问题 更多 >
编程相关推荐