我正在努力使用正则表达式,似乎无法从此字符串中提取数字
"id":143331539043251,
我已尝试过这个......但我收到了编译错误
var regex = new Regex(@""id:"\d+,");
请注意,完整字符串包含我不想要的其他数字。我想要在id:和结尾之间的数字,
答案 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);