- PR -

小数の正規表現

投稿者投稿内容
まー
会議室デビュー日: 2004/09/24
投稿数: 14
投稿日時: 2005-03-02 09:45
お世話になります。

現在ASP.netでテキストボックスに入力されたデータを
RegularExpressionValidatorを用いて行おうとしています。
次のような形式の妥当性を検証しようとしているのですが、
うまく正規表現が利用できません。

検証フォーマット
・数字かどうか。(小数もOK)

3:○
3.1:○
3.11111111:○

どのようにしたらよいのか教えてください。
宜しくお願いします。
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-03-02 10:19
こうかな

@"^¥d+(:?|¥.¥d+)$"

全角は半角にして使って下さい
コブラ
ぬし
会議室デビュー日: 2003/07/18
投稿数: 1038
お住まい・勤務地: 神奈川
投稿日時: 2005-03-02 10:26
普通の正規表現で考えたら、

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

こんな感じでどうでっか?
或いは、

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

ですかな。
まー
会議室デビュー日: 2004/09/24
投稿数: 14
投稿日時: 2005-03-02 10:32
catsさん、回答ありがとうございます。

私の説明がちょっとまずかったです。

「3」と入力されたら○
「3.1」と入力されたら○
「3.11111111」と入力されたら○

という意味で書いたので、「:」は無視してください。

その場合、
(?|\.\d+)$ と書くのかと試してみたら、
うまくいきませんでした。

大変申し訳ないのですが、ご教授願います。
未記入
会議室デビュー日: 2003/09/24
投稿数: 18
投稿日時: 2005-03-02 10:36
 お疲れさまです。
こんな感じなのでしょうか?
^([1-9][0-9]*)?[0-9](\\.[0-9]*[1-9])?$

先頭が0が許されるのは整数部が一桁の時のみ、
小数部の末尾は0でないという制約をつけています。
0:○
0.43:○
04.43×
10.250:×
.NET環境では試してないのですが。。。
:は不要とのことなので、編集しました。


[ メッセージ編集済み 編集者: 未記入 編集日時 2005-03-02 10:38 ]
Milan
常連さん
会議室デビュー日: 2005/01/05
投稿数: 33
投稿日時: 2005-03-02 10:45
コロンは正規表現の構文でしょう。
(?:Pattern)

と思ったら見間違いでした。

[ メッセージ編集済み 編集者: Milan 編集日時 2005-03-02 10:56 ]
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-03-02 11:02
(:? )は、()と同じですが、グループとして取り出せないものです。
簡単に言うと、()内を利用しない場合に、メモリと実行速度を
節約するものです。
正規表現のヘルプのどこかにあるはずなので見てみましょう
cats
大ベテラン
会議室デビュー日: 2002/11/29
投稿数: 221
お住まい・勤務地: 東京
投稿日時: 2005-03-02 11:11
といいつつ自分でヘルプを見てみました。
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpgenref/html/cpcongroupingconstructs.htm

(:?)じゃなくて(?:)でした。

ということで正しくは、
@"^¥d+(?:|¥.¥d+)$"

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