Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 具有不同格式的名称的正则表达式_Python_Regex - Fatal编程技术网

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]\)$
。这将包含您提到的两种情况(即使用点或逗号)。