最大 IP の各「ドット」括弧内に最大数 999 を含めることができるとします。つまり、999.999.999.999 が使用可能な最大値です。
電卓で正規表現 ([0-9]+.){3}[0-9] を確認しました。では、なぜプログラムは実行時エラー「"?([0-9]+.){3}[0-9]" - 数量詞 {x,y} に続く何もない」をスローするのでしょうか?
using System;
using System.IO;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
namespace RegExCs
{
class Program
{
static void Main(string[] args)
{
string rawData;
Regex filter = new Regex(@"?<ip>([0-9]+\.){3}[0-9]"); //run-time error
rawData=File.ReadAllText("Query list");
MatchCollection theMatches = filter.Matches(rawData);
foreach (Match theMatch in theMatches)
{
Console.WriteLine("ip: {0}\n",theMatch.Groups["ip"]);
}
Console.ReadKey();
}
}
}
公式ヘルプページはあまり役に立ちませんでした。
「クエリ一覧」ファイルの内容:
212.77.100.101 www.wp.pl からの返信時間: 21:37 111.41.130.55 www.dupa.pl からの返信時間: 05:33 230.77.100.101 www.whatannnoyingbug.com からの返信時間: 04:12 65.77.100.101 www.foooo.org からの返信時間: 12:55 200.77.100.101 www.example.com からの返信時間: 07:56