我必须匹配
Salutation(optional) FirstName LastName
我的正则表达式是:
^(([mMrRsSdDlLtTcCoO]{2,4})\.?\s+)?([a-zA-Z,.'-]{2,}\s+)([a-zA-Z,.'-]{2,})$
我的正则表达式的问题是它适用于
帕梅拉安德森夫人或帕梅拉安德森夫人
以及帕梅拉小姐(错误案例)。
您的正则表达式匹配Miss
为 FirstName 和Pamela
Last name
你的正则表达式应该是
^(?!(Mr|Miss|..)[.]?\s+[a-zA-Z,.'-]+$)[a-zA-Z,.'-]+[.]?(\s+[a-zA-Z,.'-]){1,2}$
-------------------------------------
|
|->don't match further if it has Salutation and firstname or lastname
作为旁注,不要使用[mMrRsSdDlLtTcCoO]{2,4}
有效名称的许多排列,例如 coco(我的朋友的名字),Rod
|
使用like明确指定它(Mr|Mrs|Miss|Dr)
试试这个:
(?:^[mMrRsSdDlLtTcCoO]{2,4}\.?\s+?)?([\w,.'-]{2,})\s+([\w,.'-]{2,})