正規表現を使って文字列から文字列を抽出する方法です。
基本
サンプルコード
// 抽出対象の文字列
var target = "foohogebarpiyo";
// 正規表現で抽出したい文字列のパターンを指定
var rgx = new Regex("foo(.*)bar(.*)", RegexOptions.IgnoreCase);
// 正規表現のパターンと抽出対象の文字列を照合
var match = rgx.Match(target);
if (match.Success)
{
// 0番目には対象の文字列が入る
// Console.WriteLine(match.Groups[0].Value);
// 1番目以降に抽出した文字列が順に入る
// Console.WriteLine(match.Groups[1].Value);
// Console.WriteLine(match.Groups[2].Value);
foreach (var item in match.Groups)
{
Console.WriteLine(item);
}
}
結果
foohogebarpiyo
hoge
piyo
パターンに一致した文字列を全て抽出
最短一致で指定します。
サンプルコード
// 抽出対象の文字列
var target = "foohogebarfoopiyobar";
// 正規表現で抽出したい文字列のパターンを指定
var rgx = new Regex("foo(.*?)bar", RegexOptions.IgnoreCase);
// 正規表現のパターンと抽出対象の文字列を照合する
var matches = rgx.Matches(target);
foreach (Match match in matches)
{
if (match.Success)
{
foreach (var item in match.Groups)
{
Console.WriteLine(item);
}
}
}
結果
foohogebar
hoge
foopiyobar
piyo