- - PR -
小数の正規表現
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-03-02 09:45
お世話になります。
現在ASP.netでテキストボックスに入力されたデータを RegularExpressionValidatorを用いて行おうとしています。 次のような形式の妥当性を検証しようとしているのですが、 うまく正規表現が利用できません。 検証フォーマット ・数字かどうか。(小数もOK) 3:○ 3.1:○ 3.11111111:○ どのようにしたらよいのか教えてください。 宜しくお願いします。 |
|
投稿日時: 2005-03-02 10:19
こうかな
@"^¥d+(:?|¥.¥d+)$" 全角は半角にして使って下さい |
|
投稿日時: 2005-03-02 10:26
普通の正規表現で考えたら、
^[0-9].*\.[0-9].* こんな感じでどうでっか? 或いは、 ^[0-9].*\\.[0-9].* ですかな。 |
|
投稿日時: 2005-03-02 10:32
catsさん、回答ありがとうございます。
私の説明がちょっとまずかったです。 「3」と入力されたら○ 「3.1」と入力されたら○ 「3.11111111」と入力されたら○ という意味で書いたので、「:」は無視してください。 その場合、 (?|\.\d+)$ と書くのかと試してみたら、 うまくいきませんでした。 大変申し訳ないのですが、ご教授願います。 |
|
投稿日時: 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 ] |
|
投稿日時: 2005-03-02 10:45
コロンは正規表現の構文でしょう。
(?:Pattern) と思ったら見間違いでした。 [ メッセージ編集済み 編集者: Milan 編集日時 2005-03-02 10:56 ] |
|
投稿日時: 2005-03-02 11:02
(:? )は、()と同じですが、グループとして取り出せないものです。
簡単に言うと、()内を利用しない場合に、メモリと実行速度を 節約するものです。 正規表現のヘルプのどこかにあるはずなので見てみましょう |
|
投稿日時: 2005-03-02 11:11
といいつつ自分でヘルプを見てみました。
ms-help://MS.VSCC.2003/MS.MSDNQTR.2003FEB.1041/cpgenref/html/cpcongroupingconstructs.htm (:?)じゃなくて(?:)でした。 ということで正しくは、 @"^¥d+(?:|¥.¥d+)$" |