- - PR -
正規表現で数値のみチェック
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2005-12-12 18:35
ご参考までに。
http://www.kt.rim.or.jp/~kbk/regex/regex.html _________________ 囚人のジレンマな日々 | ||||||||
|
投稿日時: 2005-12-12 18:40
降参が早くてすみません。
^-*[0-9]*\.*[\.0-9]*$ 一応、こう書いてみたのですよ。 でも、「あるかどうかわからない」は * で表現できても、更に「1回だけ」っていうのはどうやってやるんでしょうか? {1} だと1回だけになるようですが、ゼロ回には対応できないので、常に1回必要になってしまいます。 | ||||||||
|
投稿日時: 2005-12-12 18:59
こんにちは、でっちです
「?」です。0回か1回にマッチします。 ^-*[0-9]*\.*[\.0-9]*$ だと小数点が2回以上でもOKですねー | ||||||||
|
投稿日時: 2005-12-12 19:05
いつもありがとうございます。 とても参考になりました。 ^(|-)[0-9]+(|.)[0-9]*$ とりあえず、これで動いたのですけれど、"0.." だとNGですが、"0." はOKになってしまいます。しかし、これで勘弁してやることにします。 ちなみに、以下の要件を満たす正規表現を少しだけ知りたいです。 ○な場合。 12345 0 01 005 -.9 -0.9 -0.90 × 0. -1. (何も入ってない) --00.9 -0..1 | ||||||||
|
投稿日時: 2005-12-12 21:57
単純に+と*の位置入れ換えるだけで良いのでは? それで".5"もOKになりますし。 ちなみに「-0」「000」「-000」がマッチするのはOK? | ||||||||
|
投稿日時: 2005-12-13 02:25
例えば、まずこことかをよんで正規表現とはなんぞや、をつかんで、 細かいことはMSDNで確認、とかですね。
書いたほうがいいと思います。 [ メッセージ編集済み 編集者: べる 編集日時 2005-12-13 02:29 ] | ||||||||
|
投稿日時: 2005-12-13 09:24
^-?[0-9]*.?[0-9]*$
結局、でっち6号さんに教えていただいた ? を使う方がスマートなので、上記にしました。 0000 も 9. も .9 も 0.0 も全て数値として明確に変換できるので OK と言う事にしました。 | ||||||||
|
投稿日時: 2005-12-13 09:39
このスレにだいたいの答えがのってますね
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25436&forum=7 フクロウ本で勉強したり、 秀丸やEmEditorでいろいろ実験すると理解が速いと思います |