- 題名: 複数行の文字列から検索するには?
- 日時: 2009/07/08 22:33:07
- ID: 24918
- この記事の返信元:
- (なし)
- この記事への返信:
- [24920] Re[1]: 複数行の文字列から検索するには?2009/07/08 23:10:58
- [24923] Re[1]: 複数行の文字列から検索するには?2009/07/09 9:35:25
- ツリーを表示
■No24918に返信(Axolotlさんの記事)
> ReadAllLinesで読み込んだ多数行にわたる文字列があります。
> その文字列の「奇数行目」の中から特定の文字列を検索し、
> マッチした「奇数行目」の次の「偶数行目」を返すのはどうやるのでしょうか?
たとえば、こうかな。
private void button1_Click(object sender, EventArgs e)
{
string keyword /* = "なえた" */;
keyword = textBox1.Text;
string[] lines /* = { "あのさー。", "なんだ?", "なえたんだが", "よかったな。", } */;
lines = File.ReadAllLines(@"C:\test.txt", Encoding.GetEncoding("Shift_JIS"));
// 確認のため、元データを表示
listBox1.DataSource = lines;
// 抽出
string[] result = new List<string>(Filter(lines, keyword)).ToArray();
// 確認のため、抽出結果を表示
listBox2.DataSource = result;
}
IEnumerable<string> Filter(string[] lines, string keyword)
{
for (int n = 1; n < lines.Length; n += 2)
{
if (lines[n - 1].Contains(keyword)) yield return lines[n];
}
}
分類:[.NET]
2009/07/08(Wed) 22:34:18 編集(投稿者)