OStack程序员社区-中国程序员成长平台

标题: ios - 通过正则表达式验证 IP 地址 - 未知的转义序列 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 01:18
标题: ios - 通过正则表达式验证 IP 地址 - 未知的转义序列

我正在开发一个需要使用正则表达式来验证 ipv4 地址的 iOS 项目。

我使用以下代码

// only support ip4 currently
NSRegularExpression *regex = [NSRegularExpression
                              regularExpressionWithPattern"^(??:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"
                              options:0
                              error:nil];

NSUInteger numberOfMatches = [regex numberOfMatchesInString:IpString options:0 range:NSMakeRange(0, [IpString length])];
return (numberOfMatches==1?TRUE:FALSE);

XCode 不断警告我“未知的转义序列。”。当我输入“1.3.6.-6”或“2.3.33”时返回true。

如何在正则表达式中使用点(.)?谢谢



Best Answer-推荐答案


您需要对 . 加双反斜杠,因为第一个反斜杠正在由 NSString 解释,它正在寻找 . 的转义字符(不存在)。双反斜杠 (\\.) 将导致第一个反斜杠转义第二个反斜杠(确实存在),这意味着您可以正常使用 \

例如,您的正则表达式将是:

@"^(??:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$"

关于ios - 通过正则表达式验证 IP 地址 - 未知的转义序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15095181/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4