0

我必须匹配

Salutation(optional) FirstName LastName

我的正则表达式是:

^(([mMrRsSdDlLtTcCoO]{2,4})\.?\s+)?([a-zA-Z,.'-]{2,}\s+)([a-zA-Z,.'-]{2,})$

我的正则表达式的问题是它适用于

帕梅拉安德森夫人帕梅拉安德森夫人

以及帕梅拉小姐(错误案例)。

4

2 回答 2

3

您的正则表达式匹配Miss为 FirstName 和PamelaLast 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)

于 2013-05-27T06:26:00.220 回答
0

试试这个:

(?:^[mMrRsSdDlLtTcCoO]{2,4}\.?\s+?)?([\w,.'-]{2,})\s+([\w,.'-]{2,})
于 2013-05-27T06:23:24.477 回答