Python 具有不同格式的名称的正则表达式
我想为名字创建正则表达式。姓名的格式不同,例如全名或姓名和姓氏的首字母或姓氏和姓氏的首字母。下列备选方案之一:Python 具有不同格式的名称的正则表达式,python,regex,Python,Regex,我想为名字创建正则表达式。姓名的格式不同,例如全名或姓名和姓氏的首字母或姓氏和姓氏的首字母。下列备选方案之一: johndoe j。能源部 johnd. 另外,如果您能帮助我,从数据中查找正则表达式或搜索正则表达式,哪种方法更好?为此构建正则表达式相当简单,John Doe的一个正则表达式将导致: J(\.|ohn) +D(\.|oe) 这将匹配J.D.,johnd.,J.Doe和johndoe 如果你不能匹配J.D.,那么我建议你这样做,这有点重复,但有点技巧: (J(\.|ohn) +
johndoe
j。能源部
johnd.
另外,如果您能帮助我,从数据中查找正则表达式或搜索正则表达式,哪种方法更好?为此构建正则表达式相当简单,John Doe的一个正则表达式将导致:
J(\.|ohn) +D(\.|oe)
这将匹配J.D.
,johnd.
,J.Doe
和johndoe
如果你不能匹配J.D.,那么我建议你这样做,这有点重复,但有点技巧:
(J(\.|ohn) +Doe|John D\.)
这将与约翰·D·杜伊、J·杜伊相配我认为这可能会奏效
^[A-Za-z]([a-zA-Z]*|\.) ([a-zA-Z]*|[a-zA-Z]\.)$
我假设每行只有一个名称。如果您需要更多帮助,请告诉我:)欢迎使用Stackoverflow。通常,我们希望看到您尝试自己解决问题。如果您尝试过,请将其发布,以便我们可以尝试帮助您。如果你还没有尝试过,现在是开始的好时机。作为警告,本质上要求我们为您编写代码的问题经常被否决/关闭。有中间名吗?头衔(如约翰·多伊博士)?你能不能只使用str.split()?e、 g.
first,last='john d..split()
不可能,真名太不一样了。即使没有,正则表达式如何区分“约翰·多伊”和“粉红大象”?看看这个讨论已经在哪里进行了。没有中间名…我尝试过其他方法…但我对正则表达式没有任何知识…我正在尝试自己制作一个…我很快会给出我的输入…也许我完全颠倒了方向,而你试图提取名称,而不是在文本中匹配已知名称。请澄清。谢谢你的帮助…我只是想说,我不必只搜索这个名字…这个名字可以是任何名字…谢谢你的帮助我很感谢你的帮助…我正在努力了解如何编译正则表达式。。。名称的格式有点不同…如果名称的格式是doe,j或j,doe。。。非常感谢你…你的意思是你想用逗号代替点。您可以使用此regexp:^[A-Za-z]([A-Za-z]*),([A-Za-z]+)$
。我还编辑了答案,“^”有问题。您还可以像这样扩展第一个正则表达式:^[a-Za-z]([a-Za-z,]*.\)([a-Za-z]*.[a-Za-z]\)$
。这将包含您提到的两种情况(即使用点或逗号)。