我有以下信息
“ID”: “456138988365628440_103920”, “用户” 657852231654
我想回来,
456138988365628440_103920
我知道使用
“id”:“[0-9 _] *”,“用户”
将返回
“ID”: “456138988365628440_103920”, “用户”
但我只想要id
本身。
答案 0 :(得分:2)
您可以通过在括号中放置所需的部分并使用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);
}
答案 1 :(得分:0)
或者你可以使用String.Split(如果正则表达式不是强制性的):
var input = @"""id"":""456138988365628440_103920"",""user""657852231654""";
var idValue = input.Split(',')[0].Split(':')[1];
Console.WriteLine(idValue);
输出:
456138988365628440_103920
答案 2 :(得分:0)
您需要的是正则表达式中的一种条件语句,称为Zero-Width Positive Look-behind Assertion
换句话说,您需要一个声明,其中仅匹配id
属性之后的数字。
" ID":" 456138988365628440_103920""用户" 657852231654
(?<="id":")[\d_]*
此正则表达式只会为您返回所请求的号码。
您可以对其进行测试here。