虽然这看起来像一个微不足道的问题,但我很确定它不是:)
我需要验证来自世界各地的人的姓名和姓氏.我怎么能用正则表达式做到这一点?如果它只是英文版,我认为这会削减它:
^[a-z -']+$
Run Code Online (Sandbox Code Playgroud)
但是,我还需要支持这些案例:
有没有一种标准方法来验证我可以实现的这些字段,以确保我们的网站访问者有一个很好的经验,并可以在注册时实际使用他们的名字?
我会寻找类似于你可以在谷歌上找到的许多"电子邮件地址"正则表达式的东西.
所以基本上我需要解析一个名字并找到以下信息:
名字
First Initial(如果员工的首字母缩写为DJ,则使用两个首字母)
姓氏(包括员工是否有后缀,如Jr.或III.)
所以这是我正在使用的界面:
输入:
names = ["D.J. Richies III", "John Doe", "A.J. Hardie Jr."]
for name in names:
print parse_name(name)
Run Code Online (Sandbox Code Playgroud)
预期产出:
{'FirstName': 'D.J.', 'FirstInitial': 'D.J.', 'LastName': 'Richies III' }
{'FirstName': 'John', 'FirstInitial': 'J.', 'LastName': 'Doe' }
{'FirstName': 'A.J.', 'FirstInitial': 'A.J.', 'LastName': 'Hardie Jr.' }
Run Code Online (Sandbox Code Playgroud)
不是很擅长正则表达式,实际上这可能有点过头了.我只是在猜测:
if name[1] == ".": # we have a name like D.J.?
Run Code Online (Sandbox Code Playgroud)
呃,我不知道,很久没有使用Python了.
任何帮助将不胜感激!谢谢 :)