C# 从字符串正则表达式中提取数字

C# 从字符串正则表达式中提取数字,c#,regex,C#,Regex,我正在努力学习正则表达式,似乎无法从这个字符串中提取数字 "id":143331539043251, 我试过这个。。。但我有编译错误 var regex = new Regex(@""id:"\d+,"); 请注意,完整字符串包含我不想要的其他数字。我想要id:和结尾之间的数字,如果您只需要数字,只需匹配: [0-9]+ 请注意,我没有使用\d,因为它与.NET正则表达式引擎中的任何数字(如阿拉伯数字)都匹配 更新,根据对问题和答案的评论-以下正则表达式将匹配模式并将匹配的数字放入捕获组中

我正在努力学习正则表达式,似乎无法从这个字符串中提取数字

"id":143331539043251,
我试过这个。。。但我有编译错误

var regex = new Regex(@""id:"\d+,");

请注意,完整字符串包含我不想要的其他数字。我想要id:和结尾之间的数字,

如果您只需要数字,只需匹配:

[0-9]+
请注意,我没有使用\d,因为它与.NET正则表达式引擎中的任何数字(如阿拉伯数字)都匹配

更新,根据对问题和答案的评论-以下正则表达式将匹配模式并将匹配的数字放入捕获组中:

@"""id"":([0-9]+),"
用作:

Regex.Match(@"""id"":143331539043251,", @"""id"":([0-9]+),").Groups[1].Value
返回143331539043251。

请尝试以下代码:

var match = Regex.Match(input, @"\""id\"":(?<num>\d+)");
var yourNumber = match.Groups["num"].Value;

然后将提取的数字yourNumber用作字符串或将其解析为数字类型。

如果您愿意使用LINQ,请尝试以下c:

字符串stringVariable=123CCCBB--556876--=

var f=来自stringVariable.ToCharray中的a,其中Char.IsDigita==真选择a


var number=String.Join,f

这根绳子是从哪里来的?看起来它可能是一段JSON的一部分,在这种情况下,您应该使用正确的JSON解析器,而不是正则表达式。确实如此,但服务器返回格式错误的JSON,其中包含JSON。我对它有复杂的问题,这就是为什么我决定使用正则表达式。JSON可以包含JSON,只要它的属性被引用;您只需要再次解析内部片段。@MattBall这就是问题所在,它的格式不正确。我有点头疼。使用正则表达式并不是一个真正的问题,因为我只需要JSON中的一位数据,即ID。是的,但整个字符串包含我不想要的其他数字。我需要它抓取id:和结尾之间的数字,@JamesJeffery-这是一个相当重要的细节。一些你想在问题中提及的东西。为什么不编辑它,然后就这么做呢?