2

私は1,2,3,4、長さに関係なく数字が含まれている場合にのみ、数値を受け入れる必要があるサンプルプログラムを作成しています。

受け入れるべき

123
1234
122334444111222
133333333333322222244444

受け入れるべきではない

0123
8123
451233441122
12345
12333333335
12321321367

上記を実現するために、regx(正規表現)を作成しました。"[1-4]+\\d"

上記の正規表現は最後の桁をチェックしていません。5,6,7,8,9,0で終わる番号を受け入れています。

受け入れる

125
2345
123213213232135
1232132132135
1232132132136
1232132132137
1232132132138

受け入れない

1232321355
232321355
21321360
123278

さらなる調査に役立つように、最後の桁をチェックしない理由を誰か説明してください。また、同じことを行うための優れた作業表現。

前もって感謝します

これはJavaです

4

2 に答える 2

4

問題は\\d最後にあり、これは任意の数字と一致します。その部分を省きます:

^[1-4]+$

デモ:http ://www.rubular.com/r/ydYmT5oeZf

于 2013-03-11T13:17:26.663 に答える
1

正規表現が文字列全体をカバーする必要があることを指定する必要があります。

^[1-4]+$

デフォルトでは、正規表現は、指定された入力内に一致するものがあるかどうかを検索します。^試合は最初から開始し$、最後の文字で終了するようにエンジンに指示します。

http://www.regular-expressions.info/anchors.html

于 2013-03-11T13:15:59.670 に答える