以下のような情報があります
"id":"456138988365628440_103920","ユーザー"657852231654
私は戻りたいと思います。
456138988365628440_103920
私は知っている
"id":"[0-9_]*","ユーザー"
戻ります
"id":"456138988365628440_103920","ユーザー"
しかし、私はそれ自体が欲しいだけですid
。
必要な部分を括弧の間に配置し、次を使用してコールバックすることで、キャプチャ グループを使用できますmatch.Groups[1].Value
。
string msg = @"""id"":""456138988365628440_103920"",""user""657852231654""";
var reg = new Regex(@"""id"":""([0-9_]*)"",""user""", RegexOptions.IgnoreCase);
var results = reg.Matches(msg);
foreach (Match match in results)
{
Console.WriteLine(match.Groups[1].Value);
}
必要なのは、正規表現の一種の条件ステートメントです。これは、Zero-Width Positive Look-behind Assertion
つまり、プロパティの後にある一致番号のみid
を示すステートメントが必要です。
"id":"456138988365628440_103920","ユーザー"657852231654
(?<="id":")[\d_]*
この正規表現は、要求された番号のみを返します。
ここでテストできます。
または、 String.Splitを使用することもできます(正規表現が必須でない場合):
var input = @"""id"":""456138988365628440_103920"",""user""657852231654""";
var idValue = input.Split(',')[0].Split(':')[1];
Console.WriteLine(idValue);
出力:
456138988365628440_103920