2017-05-26 15 views
1

私はJavaでコーディングするのが初めてで、現在正規表現のパターンマッチを使用しようとしています。しかし何らかの理由で、正規表現はまったく一致しません。正規表現の一致が

if(scan.hasNext("append\\s[a-zA-Z0-9]*")){ 
    //do stuff 
} 

が、私は入力「ハロー追加する」場合、それは試合をwon't: 私のコードは次の通りです。

誰か教えてください。

+0

[Javaのファイルから2単語を読み込もうとする](https://stackoverflow.com/questions/25702124/trying-to-read-2-words-from-a-file-in-java)を参照してください。 –

答えて

3

あなたが例えばmatchesを使用する必要があります。

"append hello".matches("append\\s[a-zA-Z0-9]*") 

あなたは使用することができます。

if (scan.nextLine().matches("append\\s[a-zA-Z0-9]*")) { 
    System.out.println("Match"); 
} 
+1

これはコンパイルエラーになります:シンボルを見つけることができません、何かをインポートする必要がありますか? – CharlieTr

+0

私はあなたが何かを誤解していると思う、私の編集をチェックし、 'scan.hasNext'が真を返すので、それとマッチを使うことができないので、' scan.nextLine()。matches( "append \\ s [a- zA-Z0-9] * ")'代わりに@CharlieTr –

0

問題をScannerのデフォルトの区切り文字(私は仮定scanである)ということですスペースであるため、トークンはappendhelloとなり、パターンに一致しません。私は入力append hello、私は試合を得る行うときに今

Scanner scan = new Scanner(System.in); 
scan.useDelimiter(System.lineSeparator()); 

if (scan.hasNext("append\\s[a-zA-Z0-9]*")) { 
    // ... 
} 

あなたは、例えば、他の何かに行区切り文字を区切り文字を設定することができます。