我正在开发一个 iOS 项目,需要使用正则表达式来验证 ipv4 地址。
我使用以下代码
// 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/