3
System.out.println("a".matches("^[A-Za-z]+"));
System.out.println("a ".matches("^[A-Za-z]+"));

これは私に与えます:

true
false

一体何が起こっているのですか?私が読む限り、「[A-Za-z]」には「a」が含まれ、「+」は 1 つ以上を意味するので、少なくともこの宇宙では、これは機能しそうです....

詳細は次のとおりです。

Mac OS X 10.8.4

$ java -version
java version "1.6.0_51"
Java(TM) SE Runtime Environment (build 1.6.0_51-b11-457-11M4509)
Java HotSpot(TM) 64-Bit Server VM (build 20.51-b01-457, mixed mode)

たぶん、私はあまりにも長い間 perl を書いてきましたが、Java の正規表現システムはそれに似ていますが、そうではありませんか? わかりません。

4

3 に答える 3

2
System.out.println("a".matches("^[A-Za-z]+"));   //No space after "a" hence returning true
System.out.println("a ".matches("^[A-Za-z]+"));   //One space after "a" hence returning false

スペース文字を含めたい場合は、2 番目を :- に変更します。

System.out.println("a ".matches("^[A-Za-z ]+")); 
于 2013-08-31T04:33:50.507 に答える
1

あなたのregex式にはスペースが含まれていませんfalse

于 2013-08-31T04:36:28.790 に答える