こんにちは、この正規表現は正の数を受け取ります^ \ d + $これは何も受け入れません^ $ だから私はこの2つの正規表現を結合したいが、成功しない。私はこれを試しています(^ \ d + $)|(^ $)しかし、これはうまくいきません。正の整数を受け入れる正規表現
^\d*$
*
手段:「0回以上」だから、正の整数であり、何も THX
こんにちは、この正規表現は正の数を受け取ります^ \ d + $これは何も受け入れません^ $ だから私はこの2つの正規表現を結合したいが、成功しない。私はこれを試しています(^ \ d + $)|(^ $)しかし、これはうまくいきません。正の整数を受け入れる正規表現
^\d*$
*
手段:「0回以上」だから、正の整数であり、何も THX
は、単に行う多くのことを受け入れる正規表現で私を助けて。
Javaタグでほとんどの質問をしたので、私はあなたがJavaソリューションを探していると仮定しています。文字列リテラルの内部では、\
をエスケープする必要があることに注意してください。
デモ:
class Test {
public static void main(String[] args) {
String[] tests = {"-100", "", "2334", "0"};
for(String t : tests) {
System.out.println(t + " -> " + t.matches("\\d*"));
}
}
}
が生成する:
-100 -> false
-> true
2334 -> true
0 -> true
注matches(...)
ことが既に入力文字列全体を検証し、その^
と$
でそれを "アンカー" する必要はありません。
Integer.MAX_VALUE
とLong.MAX_VALUE
を超える数値についてもtrueを返すように注意してください。たとえmatches(...)
がtrueを返しても、parseInt(...)
またはparseLong(...)
が例外をスローすることがあります。
これはたくさんのことです。 – hudi
@hudi、よろしいですか? –
しかし、これは複数のゼロ( "000")にマッチします。私はそれほどエレガントではない正規表現 '' 0 | [1-9] [0-9] * "'を使って世話をしました。 –
お試し^[0-9]*$
これは数字と何も許さない。
約^\d*$
?それは、空白なしの行または空の行で、一連の数字(つまり、正の整数)を単独で受け入れることになります。
どの言語で正規表現を書いていますか? – borrible
java:Pattern.compile(regexp) – hudi