[英]Validating IP address by regular expression - Unknown escape sequence
我正在開發一個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。
如何在正則表達式中使用dot(。)? 謝謝
您需要將反斜杠加倍.
,因為第一個反斜杠由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]?)$"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.