2

我真的在用正则表达式苦苦挣扎,似乎无法从这个字符串中提取数字

"id":143331539043251,

我试过这个......但我得到了编译错误

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

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

4

3 回答 3

4

试试这个代码:

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

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

于 2013-03-03T14:53:32.193 回答
3

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

[0-9]+

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


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

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

用作:

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

哪个返回143331539043251

于 2013-03-03T14:47:48.243 回答
2

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

字符串 stringVariable = "123cccccbb---556876---==";

var f = (from a in stringVariable.ToCharArray() where Char.IsDigit(a) == true select a);

var number = String.Join("", f);

于 2014-08-21T14:47:26.877 回答