0

& group (任意のフレーズ)##date##(任意のフレーズ) に一致させようとしていますが、val1 と val2 が空です。

Console.WriteLine("Subject: "+line);
Match match = Regex.Match(line, "(.)"+Regex.Escape("##date##")+"(.)", RegexOptions.IgnoreCase);
string val1 = match.Groups[1].Value;
string val2 = match.Groups[2].Value;
Console.WriteLine("Line#{0}: {1} Date: {2}", ++lineNo, val1, val2);

コンソール:

Subject: http://www.website.com/url/is/masked.htm ##date## 3
Line#25:   Date: 

ドットは何にでもマッチするはずではありませんか?

4

2 に答える 2

2

ドットは1つの記号に一致し、例##date##では2つのスペースで囲まれています。したがって、あなたのグループの数学はとでspaceありspace、これは「何もない」ように見えます。

于 2012-04-07T23:36:29.617 に答える
2

ドットは、改行以外の1文字に一致します。あなたの場合、それは前後のスペースと一致しました##date##。代わりに、次の正規表現を使用してください。

Match match = Regex.Match(line, "(.*) ##date## (.*)", RegexOptions.IgnoreCase);

##date##これは、両側の単一のスペースを除いて、前後のフレーズ全体に一致します。

出力:

行#25:http ://www.website.com/url/is/masked.htm日付:3

于 2012-04-07T23:39:18.500 に答える