简单python re-lookahead帮助

2024-09-30 16:35:22 发布

您现在位置:Python中文网/ 问答频道 /正文

我有三个twiki名字样本:

names = [ "JohnDoe", "JaneMcAdams", "BillyBobThorton" ]

我想找回以下信息: *约翰·多伊 *简·麦克亚当斯 *比目鱼索顿

现在我有了一个能把他们从帽子上撕下来的东西(这是件好事)。

re.findall('[A-Z][^A-Z]*', name)

我如何忽略“Mc”作为分割?

谢谢!!


Tags: namere信息namesmc名字帽子样本
1条回答
网友
1楼 · 发布于 2024-09-30 16:35:22

我建议不要在这里使用正则表达式。我怀疑Mc是唯一需要匹配的粒子名。你有没有想过麦克,欧,范,冯,德?在

我建议按照您目前所说的那样中断它们,并手动创建名字和姓氏。在

奖金。正则表达式:

re.findall('(?:Mc|Mac|O|Van|Von|De)?[A-Z][^A-Z]*', name) 

但范,冯,德应该用空格隔开。在

注意:如果您说您只想匹配McSomething,请使用a short version(?:Mc)?[A-Z][^A-Z]*

相关问题 更多 >