我需要一个正则表达式,它可以在某些文本内容中找到名称。它应匹配1到3个名字,名字,(中间名),(姓氏)。
我有一个有效的名字列表,用于搜索文本。如果在文本中找到了first-name,则正则表达式应该获得下一个中间名或/和姓氏(如果存在)。
作为示例,下面的名称应该是找到的有效名称:
特殊情况:
到目前为止,我的解决方案是:
\b(John|Mary|Tom)\b(?:(?:([^A-Za-z]*[A-Z][^\s,]*)*[^A-Za-z]+)){0,3}
这种方法有效,问题是只能匹配最多3个单词的限制,这不是。