从字符串RegEx中提取数字

时间:2013-03-03 14:45:16

标签: c# regex

我正在努力使用正则表达式,似乎无法从此字符串中提取数字

"id":143331539043251,

我已尝试过这个......但我收到了编译错误

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

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

3 个答案:

答案 0 :(得分:3)

如果你需要的只是数字,那就匹配:

[0-9]+

请注意,我没有使用\d,因为它与.NET正则表达式引擎中任何数字(例如阿拉伯数字)相匹配。


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

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

用作:

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

返回143331539043251

答案 1 :(得分:3)

试试这段代码:

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

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

答案 2 :(得分:2)

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

string stringVariable =“123cccccbb --- 556876 --- ==”;

var f =(来自stringVariable.ToCharArray(),其中Char.IsDigit(a)== true选择a);

var number = String.Join(“”,f);