次の文字列 (名前は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"で、2 番目の浮動小数点数のマイナス記号はありません。
「-」がマッチ変数の結果にないことを確認できるコードにデバッグしました。
同じ結果を得るために、次の正規表現もテストしました。
[-+]?[0-9]*\.?[0-9]+
(-|+)?[0-9]*\.?[0-9]+
(-|\+)?[0-9]*\.?[0-9]+
(-\+)?[0-9]*\.?[0-9]+
なぜこれがうまくいかないのか、誰にも分かりますか?
ありがとう、マイロ