我正在尝试为名称编写RegEx。名称可以选择以标题(博士,夫人等)开头,否则包含两个或三个名称,中间名称可选择缩写形式(X。)
例如,应匹配以下名称:
以下内容不应匹配
这就是我所拥有的:
^(Dr\.|Mr\.|Mrs\.)?[A-Z][a-z]+\s([A-Z][a-z]+|[A-Z]\.)\s[A-Z][a-z]+?
我不太确定我在哪里出错了。
答案 0 :(得分:3)
^((Dr|Mr|Mrs)\. )?[A-Z][a-z]+( [A-Z]([a-z]+|\.))? [A-Z][a-z]+
这就是我为解决这个问题而采取的措施:
?
会产生“lazy matching” - 匹配尽可能少的字符(在这种情况下,1)< / LI>
\s
- 它更容易阅读,\ s匹配制表符,换行符等。