我希望我的正则表达式表达式包含所有类型的全名。 例如:约翰·肯尼迪(John F. Kennedy),肯尼迪(J.F. Kennedy),约翰·肯尼迪(John Kennedy)等。
([A-Z][a-zA-Z]+)[ ]*(?:\s[^\s]+)?\s([A-Z][a-zA-Z]+)
我最初写的是这个,但我注意到肯尼迪(J.F. Kennedy)将不被包括在内。我希望找到所有类型的名称。
如果有人可以帮助我解决此问题,将非常感谢,谢谢!
另外,[ ]*
和\s
之间有区别吗?
答案 0 :(得分:1)
您可以尝试以下正则表达式:/^([A-Z]([a-z]+|\.)\s*){2,3}$/
它指定名称的每个部分必须以大写字母开头,后跟点号或小写字母,并且名称中可以包含2到3个部分。
答案 1 :(得分:1)
根据您对“名称”的定义,结果可能会有所不同。
一种可能性:
此示例导致了正则表达式(?:[A-Z](?:\.|[a-z]+ )\s*)+[A-Z][a-z]+
如果要缩写姓氏,请不要使用最后一部分。
如果您想在名称中使用'`-
,请插入它们。