我真的在用正则表达式苦苦挣扎,似乎无法从这个字符串中提取数字
"id":143331539043251,
我试过这个......但我得到了编译错误
var regex = new Regex(@""id:"\d+,");
请注意,完整的字符串包含我不想要的其他数字。我想要 id: 和结尾之间的数字,
试试这个代码:
var match = Regex.Match(input, @"\""id\"":(?<num>\d+)");
var yourNumber = match.Groups["num"].Value;
然后将提取的数字yourNumber
用作字符串或将其解析为数字类型。
如果您只需要数字,只需匹配:
[0-9]+
请注意,我没有使用\d
它,因为它会匹配.NET 正则表达式引擎中的任何数字(例如阿拉伯数字)。
更新,对问题和这个答案的评论 - 以下正则表达式将匹配模式并将匹配的数字放在捕获组中:
@"""id"":([0-9]+),"
用作:
Regex.Match(@"""id"":143331539043251,", @"""id"":([0-9]+),").Groups[1].Value
哪个返回143331539043251
。
如果您愿意使用 LINQ,请尝试以下 (c#):
字符串 stringVariable = "123cccccbb---556876---==";
var f = (from a in stringVariable.ToCharArray() where Char.IsDigit(a) == true select a);
var number = String.Join("", f);