この正規表現"^[0-9]+\.?[0-9]*$")
をビジュアル C++ の double の数値または整数に一致させましたが、機能していないようです。何か案は?
これは私がコードを適用する方法です:
if (System::Text::RegularExpressions::Regex::IsMatch(e0, "^[0-9]+\.?[0-9]*$")){
e0_val = System::Convert::ToDouble(e0);
}
正規表現自体に問題はありません。それはあなたのエスケープです。\
これは C++ 文字列エスケープ文字でもあるため、文字をダブル エスケープする必要があります。
1.
さらに、この正規表現が有効な浮動小数点数であると考えるエッジ ケースがあります。/^[0-9]+(\\.[0-9]+)?$
したがって、その可能性を排除するほうがよいかもしれません。
(\d+)?\.(\d+)?
上記の正規表現は、 "45.5"、"12"などの double に対して機能します。、「.12」