含特殊前缀的姓名正则解析难题求助
姓名解析的正则匹配问题及解决方案
姓名解析为名、中间名、姓氏、后缀的难度较高,有一组姓名难以处理。我原本想用正则 ^(.*)(\b[Vv][ao]n\b\s\w+|\b[Dd][eu]\s\b\w+)(.*) 来分组匹配,但现在需要把 (De La \w+)|(La \w+) 整合进去,确保包含“La 姓名”的结构也能正确分组。
补充匹配示例
Emile La Sére应返回(Emile) (La Sére)(需保留重音符号)Justin De Witt Bowersock应返回(Justin) (De Witt) (Bowersock)Monica De La Cruz应返回(Monica) (De La Cruz)Robert M. La Follette应返回(Robert M.) (La Follette),理想状态下是(Robert) (M.) (La Follette)Henry St. John应返回(Henry) (St. John)Edward St. Loe Livermore应返回(Edward) (St. Loe) (Livermore)Oscar L. Auf der Heide应返回(Oscar) (L.) (Auf der Heide)
尝试过程与解决
我尝试过正则 (^.*)\b([Vv][ao]n\s\w+|[Dd][ue]\s\w+|[Dd]e\s[Ll]a\s\w+|St\.\s\w+)\s*(.*),但在匹配 De Witt、[Dd]e [Ll]a Cruz 和 [Ll]a Follette 时出现冲突。由于我正则基础薄弱,后来经@The fourth bird提供的最终正则解决了问题。
内容的提问来源于stack exchange,提问作者Ken Ingram
相关产品推荐
相关产品推荐

