- PR -

正規表現で数値のみチェック

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-12-12 18:35
ご参考までに。
http://www.kt.rim.or.jp/~kbk/regex/regex.html
_________________
囚人のジレンマな日々
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2005-12-12 18:40
降参が早くてすみません。

^-*[0-9]*\.*[\.0-9]*$

一応、こう書いてみたのですよ。
でも、「あるかどうかわからない」は * で表現できても、更に「1回だけ」っていうのはどうやってやるんでしょうか?
{1} だと1回だけになるようですが、ゼロ回には対応できないので、常に1回必要になってしまいます。
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-12-12 18:59
こんにちは、でっちです

引用:

でも、「あるかどうかわからない」は * で表現できても、更に「1回だけ」っていうのはどうやってやるんでしょうか?


「?」です。0回か1回にマッチします。

^-*[0-9]*\.*[\.0-9]*$
だと小数点が2回以上でもOKですねー
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2005-12-12 19:05
引用:

囚人さんの書き込み (2005-12-12 18:35) より:
ご参考までに。
http://www.kt.rim.or.jp/~kbk/regex/regex.html
SIZE="1" WIDTH="100%">


いつもありがとうございます。
とても参考になりました。

^(|-)[0-9]+(|.)[0-9]*$

とりあえず、これで動いたのですけれど、"0.." だとNGですが、"0." はOKになってしまいます。しかし、これで勘弁してやることにします。

ちなみに、以下の要件を満たす正規表現を少しだけ知りたいです。

○な場合。
12345
0
01
005
-.9
-0.9
-0.90

×
0.
-1.
(何も入ってない)
--00.9
-0..1
でっち6号
大ベテラン
会議室デビュー日: 2005/01/31
投稿数: 176
お住まい・勤務地: Kawasaki
投稿日時: 2005-12-12 21:57
引用:

^(|-)[0-9]+(|.)[0-9]*$

とりあえず、これで動いたのですけれど、"0.." だとNGですが、"0." はOKになってしまいます。しかし、これで勘弁してやることにします。


単純に+と*の位置入れ換えるだけで良いのでは?
それで".5"もOKになりますし。

ちなみに「-0」「000」「-000」がマッチするのはOK?
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-12-13 02:25
引用:
一応、こう書いてみたのですよ。
でも、「あるかどうかわからない」は * で表現できても、更に「1回だけ」っていうのはどうやってやるんでしょうか?

リファレンスとかは一通りみたほうがいいですよ。
例えば、まずこことかをよんで正規表現とはなんぞや、をつかんで、
細かいことはMSDNで確認、とかですね。

引用:
ちなみに、以下の要件を満たす正規表現を少しだけ知りたいです。

○な場合。
12345
0
01
005
-.9
-0.9
-0.90

×
0.
-1.
(何も入ってない)
--00.9
-0..1

これも例をならべるより、論理的にどういう文字列を許可したいのかを
書いたほうがいいと思います。

[ メッセージ編集済み 編集者: べる 編集日時 2005-12-13 02:29 ]
R・田中一郎
ぬし
会議室デビュー日: 2005/11/03
投稿数: 979
投稿日時: 2005-12-13 09:24
^-?[0-9]*.?[0-9]*$

結局、でっち6号さんに教えていただいた ? を使う方がスマートなので、上記にしました。

0000 も 9. も .9 も 0.0 も全て数値として明確に変換できるので OK と言う事にしました。
明智重蔵
大ベテラン
会議室デビュー日: 2005/09/05
投稿数: 127
投稿日時: 2005-12-13 09:39
このスレにだいたいの答えがのってますね
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=25436&forum=7

フクロウ本で勉強したり、
秀丸やEmEditorでいろいろ実験すると理解が速いと思います

スキルアップ/キャリアアップ(JOB@IT)