gpt4 book ai didi

iphone - 正则表达式名称和姓氏

转载 作者:搜寻专家 更新时间:2023-10-30 19:55:31 24 4
gpt4 key购买 nike

我需要验证信用卡的名字和姓氏。例如:“朗格诺顿”或“LANGE NORTON”我使用这段代码:

NSString *nameRegex = @"^[A-Z][a-z]*[\pL\pM\p{Nl}][A-Z][a-z]*$"; 
NSPredicate *nameTest = [NSPredicate predicateWithFormat:@"SELF MATCHES %@", nameRegex];
return [nameTest evaluateWithObject:nameSurname];

而且我对空格有疑问。“未知的转义序列‘\p’”我该怎么办?

最佳答案

我想你漏掉了一些大括号

NSString *nameRegex = @"^[A-Z][a-z]*[\p{L}\p{M}\p{Nl}][A-Z][a-z]*$";

如果你还需要 whitspace 添加 \s

您可以找到这些属性的列表(\p{L}\p{M}\p{Nl} 内容)here on regular-expressions.info

\p{L} or \p{Letter}: any kind of letter from any language

\p{M} or \p{Mark}: a character intended to be combined with another character (e.g. accents, umlauts, enclosing boxes, etc.).

\p{Nl} or \p{Letter_Number}: a number that looks like a letter, such as a Roman numeral.

另外我认为你的表述不正确。

您的字符串需要以 [A-Z] 开头,后跟 [a-z]*(也可以为零),然后只有其中一个 [\p {L}\p{M}\p{Nl}] 另一个大写 ASCII 字母后跟小写字母。

如果这个人的名字是“René Müller”会怎样?

关于iphone - 正则表达式名称和姓氏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6679153/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com