我正在开发一个需要使用正则表达式来验证 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。
如何在正则表达式中使用点(.)?谢谢
您需要对 .
加双反斜杠,因为第一个反斜杠正在由 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 |