12

数字とドットのみを受け入れるJava正規表現が必要です。

例えば、

             1.1.1 ----valid
             1.1   ----valid
             1.1.1.1---valid
             1.    ----not valid

ドットは開始位置または終了位置に配置しないでください。

4

5 に答える 5

48

私はこれがあなたが望むものだと思います:

^\d+(\.\d+)*$

説明:ドットで区切られた数字を受け入れます。数字で始まり、数字で終わります。数値は複数の数字を持つことができます。ドットのない1つの数字も受け入れられます。

複数桁のないバリアント:

^\d(\.\d)*$

少なくとも1つのドットが必要なバリアント:

^\d+(\.\d+)+$
^\d(\.\d)+$

Javaでは\記号をエスケープする必要があることを忘れないでください。そのため、コードは次のようになります。

Pattern NUMBERS_WITH_DOTS = Pattern.compile("^\\d+(\\.\\d+)*$");
于 2012-08-17T07:14:00.677 に答える
3

では、数字とピリオドが必要だが、数字で始まり数字で終わる正規表現が必要ですか?

"[0-9][0-9.]*[0-9]"

しかし、これはのようなものとは一致しません1。ピリオドはありませんが、数字で始まり、数字で終わります。

于 2012-08-17T07:05:36.253 に答える
2

私はこれがあなたが望むものだと思います:

Pattern.compile("(([0-9](\\.[0-9]*))?){1,13}(\\.[0-9]*)?(\\.[0-9]*)?(\\.[0-9]*)?", Pattern.CASE_INSENSITIVE | Pattern.UNICODE_CASE | Pattern.DOTALL | Pattern.MULTILINE);

説明:ドットで区切られた数字を受け入れます。数字で始まり、数字で終わります。数値は複数の数字を持つことができます。ドットのない1つの数字は受け入れられません。

このような出力-

  • 1.1
  • 1.12
  • 1.1.5
  • 1.15.1.4
于 2016-06-27T07:11:23.600 に答える
1
<!DOCTYPE html>
<html>
<body>

<p>RegEx to allow digits and dot</p>
Number: <input type="text" id="fname" onkeyup="myFunction()">

<script>
function myFunction() {
    var x = document.getElementById("fname");
    x.value = x.value.replace(/[^0-9\.]/g,"");
}
</script>

</body>
</html>
于 2015-10-10T16:42:56.690 に答える
0
"^\\d(\\.\\d)*$"

1     ----valid (if it must be not valid, replace `*` => `+` )
1.1.1 ----valid
1.1   ----valid
1.1.1.1---valid
1.    ----not valid
11.1.1 ---not valid (if it must be valid, add `+` after each `d`) 
于 2012-08-17T07:15:22.890 に答える