1

C#では、次のような形式の文字列を指定します。

http://10.242.33.210:5000

ftp://52.42.12.52:7000/

正規表現を使用してIPのみを取得するにはどうすればよいですか(ポートは破棄する必要があります)

上記の2つの例では、正規表現は10.242.33.210と52.42.12.52に一致する必要があります

4

3 に答える 3

3

正規表現の代わりに、URIを作成してそのHostプロパティを取得することができます

Uri url = new Uri("ftp://52.42.12.52:7000/");
Console.Write(url.Host);
于 2012-09-06T05:13:29.217 に答える
2

実際、非常に簡単です。

[\d.]+

数字とドットの連続に一致します。あなたの場合、ポートのないIPアドレス。IPがどのように見えるか(0から255までの数字、またはドットの間の1から3桁)に準拠することで、より複雑にすることができますが、上記のように期待するすべてが入力されている場合は、これで問題ありません。

クイックPowershellテスト:

PS> $tests = 'http://10.242.33.210:5000','ftp://52.42.12.52:7000/'
PS> $tests | %{ $_ -match '[\d.]+' | Out-Null; $Matches}

Name                           Value
----                           -----
0                              10.242.33.210
0                              52.42.12.52
于 2012-09-06T05:12:22.643 に答える
1
\b([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\b

同じですが短い(zerkmsから):

\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
于 2012-09-06T05:14:13.663 に答える