|
分類:[C#]
C#の質問をさせてください。
以下のコードなのですが、
using System;
using System.Text.RegularExpressions;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string str = @"abc
def
ghi
jkl";
//最後のjlkは大丈夫
string pattern =".+";
Regex reg = new Regex(pattern);
MatchCollection collection = reg.Matches(str);
foreach (Match item in collection)
{
Console.WriteLine(item.Groups[0].Value +" ");//1文字目が消える。
//こっちは大丈夫。
//Console.WriteLine(" " + item.Groups[0].Value);
}
}
}
}
出力結果は、
abc
def
ghi
jkl
と期待できると思うのですが、実際には
bc
ef
hi
jkl
となり、a, d, g が消えています。これは一体、どういう理屈なのでしょうか。
ちなみに、
Console.WriteLine(" " + item.Groups[0].Value );
とすると、これは自然な結果になります。
|