簡體   English   中英

通過正則表達式驗證IP地址-未知的轉義序列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM