【发布时间】:2014-09-16 11:30:28
【问题描述】:
我需要一个正则表达式,它可以在某些文本内容中找到名称。它应该匹配 1 到 3 个名字,First-name, (Middle-name), (Surname)。
我有一个有效的名字列表,将用于搜索文本。如果在文本中找到名字,则正则表达式应获取下一个中间名或/和姓氏(如果存在)。
作为示例,下面的名称应该是找到的有效名称:
- 约翰
- 约翰·多伊
- 约翰·平均乔
特殊情况:
- John 平均 Doe(如果可能,它应该匹配/找到 John Doe)
到目前为止,我的解决方案是:
\b(John|Mary|Tom)\b(?:(?:([^A-Za-z]*[A-Z][^\s,]*)*[^A-Za-z]+)){0,3}
这有点用,问题是最多只能匹配 3 个单词,而这不是。
【问题讨论】: