所以我想验证一下意大利名字。他们可以是安吉洛·奥瑞斯特·阿德里萨诺,费鲁奇奥·雷斯塔,安东尼奥·德·法尔奇,塔玛拉·多纳,吉安弗朗科·D'Angelo或克莱莉亚·多诺弗里奥。谁能帮帮我。我的方法是: A-Z{1,13} A-Z{1,13}( A-Z{1,13})?
它适用于安吉洛·奥瑞斯特、阿德里萨诺等名字,但我还想包括克莱莉亚·多诺弗里奥和塔玛拉·唐纳这样的名字。
问题不是关于NER(命名实体识别)!换句话说,对我来说是可以接受的,例如"Scuola Di Nasia“,这不是一个真实的名字…
发布于 2018-10-29 17:50:14
正则表达式是一个有点盲目的工具。它并不真正理解上下文。对于a-zA-Z *的正则表达式,这些都是有效的:
新York
的
这是一个非常简单的正则表达式,但请注意它是如何完全不区分名称、名词、动词和形容词的。
据我所知,除非您在String中硬编码有效名称(根据人类的定义),否则所有正则表达式都只会提取与您编写的内容相匹配的任何乱码。在这一点上,你也可以自己做一个有效名称的列表。
您的正则表达式将匹配两到三个单词的任意序列,每个单词以A-Z的大写字母开头,后跟最多13个a-z的小写字母。该描述本身并不排除"Adfnwj Jsdako Mvdso“之类的内容,而且据我所知,regex不能简单地做到这一点。
https://stackoverflow.com/questions/53042407
复制相似问题