我做了这个正则表达式:^[A-zÀ-ú]{3,} [A-zÀ-ú]{3,}.*验证拉丁/英文名称。这个想法是这个人应该至少有两个名字,每个名字有 3 个字符。问题是我做的方式,它不会处理像Maria da Mara或这样的名字Laura D'Avila那么我该如何强制执行所有字符都是有效的拉丁字母加上'至少有两个三个字符的名字,一个应该是第一个,另一个无所谓在什么位置如何解决这个难题?谢谢
1 回答
不负相思意
TA贡献1777条经验 获得超10个赞
您的正则表达式没有涵盖两种情况。
它不匹配
'
,你可以简单地将它添加到你匹配的字符列表中。“Maria da Mara”有 2 个字符。也许减少第二个匹配组中的最少字符数。
^[A-zÀ-ú]{3,} [A-zÀ-ú']{2,}.*
您也可以添加一个命名的捕获组,将第一个词作为名字,将任何后续匹配项作为姓氏。
^(?<first_name>[A-zÀ-ú]{3,}) (?<last_name>[A-zÀ-ú']{2,}.*)
https://regex101.com/r/YZFThW/2
添加回答
举报
0/150
提交
取消