1

数字(0-9)とそれに続くドットのみの正規表現を作成したいと思います。これは最大4回まで続けることができます。秘訣は、継続する必要がないことです。

例えば:

1234 is OK  
1234.1234 is OK  
1234.1234.1234 is OK  
1234.1234.1234.1234 is OK  

良くないですよ:

asdf NOT OK  
1234.. NOT OK 
1234..1234 NOT OK  
1234,-/etc. NOT OK  
123asd NOT OK  
1234.1234asd NOT OK  
4

4 に答える 4

4

私があなたを正しく理解していれば、これはうまくいくはずです:

^[0-9]+(\.[0-9]+){0,3}$
于 2012-10-10T13:09:10.203 に答える
3

これはC#用ですか?

Regex regex = new Regex(@"^\d+(\.\d+){0,3}$");
于 2012-10-10T13:06:29.110 に答える
2

これはどう:

^\d+(\.\d+){0,3}$
于 2012-10-10T13:06:33.050 に答える
0

受け入れられた答えに同意するかどうかはわかりません。受け入れられた答えを機能させることができません。

私が理解している限り、受け入れられた答えは一致しています:-

^ 文字列の開始

[0-9]+ 1桁以上の0から9までこれは短縮形で表すこともできます\d

( 繰り返しの開始

\. 単一のピリオド(ワイルドカードとして扱われないようにするためにエスケープ)

[0-9]+ 1桁以上の0から9までこれは短縮形で表すこともできます\d

) 繰り返しの終わり

{0,3} 0回または3回繰り返し

$ 文字列の終わり

したがって、たとえば一致する可能性があります

1234.12.123456789.1234または

1234.12または

123.1.234または

1

私は何かを誤解しているかもしれませんが、これはSOの例で与えられた仕様を満たしていません。

これはすべきではありません

^\d{4}(\.\d{4}){0,3}$

すなわち

^ 文字列の開始

\d{4} 4桁

( 繰り返しの開始

\. 単一のピリオド(ワイルドカードとして扱われないようにするためにエスケープ)

\d{4} 4桁

) 繰り返しの終わり

{0,3} 0回または3回繰り返し

$ 文字列の終わり

これは一致します

1234または

1234.1234または

1234.1234.1234または

1234.1234.1234.1234

要件に準拠していると読みました。

于 2012-10-10T14:26:48.563 に答える