これは私自身の好奇心の問題です。私は実用的な解決策を持っていますが、なぜ一方の解決策が機能し、もう一方の解決策が機能しないのかについて誰かが洞察を持っているかどうか知りたいです。
ユーザーが有効な数字を入力したことを検証する正規表現が必要でした。いくつかの例:
87
887.65
-87
-87.65
私の最初の試みは次のようになりました:
^(\-?[0-9]+(\.[0-9]*)?)$
「7x」、「1a」、「89p」などの文字列が受け入れられることを除いて、うまく機能しました。私の新しいソリューションは以下のとおりで、問題なく動作するようです。
^(\-?[0-9]+(\.[0-9]+)?)$
2 番目のもの (「+」に注意) はもう少し簡潔ですが、最初のものは文字を受け入れ、2 番目のものは受け入れない理由がわかりません。誰かが私が見逃しているものを見ていますか?