我正在尝试从以下字符串(名为interim)中提取 2 个数字:
"location" : { "lat" : 42.3875968, "lng" : -71.0994968 },
这是我在 C# 中使用的代码:
// define a regex for float numbers
Regex rx = new Regex(@"\b-?[0-9]*\.?[0-9]+\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);
// Find matches.
MatchCollection matches = rx.Matches(interim);
return matches[0].ToString() + ", " + matches[1].ToString();
返回是"42.3875968, 71.0994968",第二个浮点数没有减号。
我调试了可以确认“-”不在matches var结果中的代码。
我还测试了以下正则表达式,结果相同:
[-+]?[0-9]*\.?[0-9]+
(-|+)?[0-9]*\.?[0-9]+
(-|\+)?[0-9]*\.?[0-9]+
(-\+)?[0-9]*\.?[0-9]+
任何人都知道为什么这不起作用?
谢谢,米洛