質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

2回答

11189閲覧

小数点を含む正規表現について

yuuumi

総合スコア7

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2017/05/06 04:36

編集2017/05/06 04:53

20.1~100
までを含む、という数字の正規表現お分かりの方、お教えいただけますと幸いです。
小数点を含む数字の表現方法がうまく生み出せず…初心者で申し訳ありません。

追記
21~100
までであれば、下記のコードで問題ないかと思うのですが…
^[2-9][1-9]$|^100$

20.1~100
とした場合の正規表現が見いだせない状況です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2017/05/06 04:48

ご自身で書かれたコードを質問文に追記いただいたほうが回答を得られやすいと思います。
yuuumi

2017/05/06 04:53

ご丁寧にありがとうございます!追記させていただきました。
guest

回答2

0

ベストアンサー

ちょっと煩雑になりますが、こんな感じで受けるかなと思います(なお、\d[0-9]と同じ意味です)。

^(20\.[1-9]\d*|2[1-9](\.\d*)?|[3-9]\d(\.\d*)?|100)$

なお、

21~100

までであれば、(後略)

この正規表現も正しくありません。たとえば、「30」はヒットしません。

投稿2017/05/06 05:07

maisumakun

総合スコア145183

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuuumi

2017/05/06 05:10

なるほど、確かにそうですね…。 初歩的な質問にも関わらずご返答いただきありがとうございます! 大変助かりました。
yuuumi

2017/05/06 05:31

申し訳ありません。 上記に1点追加でご質問です。 先ほどご回答いただいた内容で作業を進めたところ、34.5などの数字が反映されないようです…。 私が見ている中でも正しい表記かと思っているのですが、いかがでしょうか?
guest

0

20.1以上100以下の数値を表す、10進数での整数表記または少数点数表記(指数表記は除く)の文字列

に、完全にマッチ(前後に余計な文字や改行等がない)する正規表現と言うことでよろしいでしょうか?

\A(?:(?!20(?:\.0\d*)?\z)[2-9]\d(?:\.\d+)?|100(?:\.0+)?)\z

Rubyで確認しています。Ruby以外の言語で使用する場合は正規表現ライブラリとしてOnigmoを使ってください。それ以外の正規表現ライブラリでは正常に動かない可能性があります。

投稿2017/05/06 05:38

raccy

総合スコア21735

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yuuumi

2017/05/06 05:49

ご回答ありがとうございます。 おっしゃる通り、完全にマッチする正規表現を求めております。 上記でも確認させていただきます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問