4

目標は、これから時刻と日付の文字列を抽出することです。

<strong>Date</strong> - Thursday, June 2 2011 9:00PM<br>

コードは次のとおりです。

Match m = Regex.Match(line, "<strong>Date</strong> - (.*) (.*)<br>");
date = m.Captures[0].Value;
time = m.Captures[1].Value;

貪欲な正規表現のおかげで、最後のスペースまで最初のグループと一致するはずです。しかし、そうではありません。Captures[0]全体lineでありCaptures[1]、範囲外です。なんで?

4

1 に答える 1

4

キャプチャではなく、グループを使用します。結果はGroups[1]とGroups[2]になります。

個人的には、グループに名前を付けることをお勧めします。

Match m = Regex.Match(line, "<strong>Date</strong> - (?<date>.*) (?<time>.*)<br>");
if( m.Success )
{
    date = m.Groups["date"].Value;
    time = m.Groups["time"].Value;
}
于 2011-06-05T13:26:56.420 に答える