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

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

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

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

Q&A

2回答

2362閲覧

正規表現出の数字制限

ringo_go

総合スコア8

正規表現

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

0グッド

0クリップ

投稿2019/08/05 23:01

正規表現で0~999までの3桁までの半角数字のみをチェックしたいです。

そのときに、
「0」はOKですが、「01」「001」のような先頭に0がつくものをNGにしたいのですが、どのように表記すればよいのか分かりません。
また「1 」や「2 」等の空白が含まれているものもNGにしたいです。

お知恵を貸していただければと思います。
よろしくおねがいします。

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

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

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

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

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

退会済みユーザー

退会済みユーザー

2019/08/05 23:03

試行用のコードはごく簡単にかけると思います。 どのようなものを書き、何が問題だったのでしょうか?
ringo_go

2019/08/05 23:12

[0-9]|[0-9][0-9][0-9] 調べて書いたものはこれです。 これだと001のものも含まれてしまいますので困っています。
退会済みユーザー

退会済みユーザー

2019/08/05 23:14

この欄ではなく、質問に追記して下さい。この欄は目立ちません。
guest

回答2

0

何の正規表現か知りませんが、.NET なら ^(?:0|[1-9]\d{0,2})$ で通ります。
^ = 先頭
(?:) = 無名グループ
0 = 0
| = その左右のどちらかにマッチ
[1-9] = 1 から 9
\d = 0 から 9
{0,2} = その前の表現の 0 回から 2 回までの繰り返し
$ = 最後

文字列の先頭から最後までが、次のどちらかにマッチした時、正規表現全体がマッチしたとみなされます。

  • 0
  • 1 から 9 の数字の次に、0 から 9 の数字の 0 回以上 2 回以下の繰り返し

投稿2019/08/05 23:13

Zuishin

総合スコア28656

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

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

0

不正確でしたので下記は削除します。失礼しました。

こんな感じでしょうか。

[^0-9]0[^0-9]|[1-9][0-9]{1,2}

投稿2019/08/06 03:29

編集2019/08/06 07:06
meg_

総合スコア10577

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

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

Zuishin

2019/08/06 03:42

00 がマッチしませんか?
think49

2019/08/06 03:47

「 0 」や「 12 」等の空白が含まれているものもマッチしそうですね。
Zuishin

2019/08/06 04:08

あと、一桁の数字が 0 以外マッチしません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問