2

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を返す場合。

正規表現でdot(。)を使用するにはどうすればよいですか?ありがとう

4

1 に答える 1

4

最初のバックスラッシュは NSString によって解釈され、 (存在しない).のエスケープ文字を探しているため、バックスラッシュを二重にする必要があります。.2 つのバックスラッシュ ( \\.) を使用すると、最初のバックスラッシュが 2 番目のバックスラッシュ (存在する) をエスケープするため、\通常どおり使用できます。

たとえば、正規表現は次のようになります。

@"^(?:(?: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]?)$"
于 2013-02-26T17:34:00.283 に答える