私はJavaでコーディングするのが初めてで、現在正規表現のパターンマッチを使用しようとしています。しかし何らかの理由で、正規表現はまったく一致しません。正規表現の一致が
if(scan.hasNext("append\\s[a-zA-Z0-9]*")){
//do stuff
}
が、私は入力「ハロー追加する」場合、それは試合をwon't: 私のコードは次の通りです。
誰か教えてください。
私はJavaでコーディングするのが初めてで、現在正規表現のパターンマッチを使用しようとしています。しかし何らかの理由で、正規表現はまったく一致しません。正規表現の一致が
if(scan.hasNext("append\\s[a-zA-Z0-9]*")){
//do stuff
}
が、私は入力「ハロー追加する」場合、それは試合をwon't: 私のコードは次の通りです。
誰か教えてください。
あなたが例えばmatches
を使用する必要があります。
"append hello".matches("append\\s[a-zA-Z0-9]*")
あなたは使用することができます。
if (scan.nextLine().matches("append\\s[a-zA-Z0-9]*")) {
System.out.println("Match");
}
これはコンパイルエラーになります:シンボルを見つけることができません、何かをインポートする必要がありますか? – CharlieTr
私はあなたが何かを誤解していると思う、私の編集をチェックし、 'scan.hasNext'が真を返すので、それとマッチを使うことができないので、' scan.nextLine()。matches( "append \\ s [a- zA-Z0-9] * ")'代わりに@CharlieTr –
問題をScanner
のデフォルトの区切り文字(私は仮定scan
である)ということですスペースであるため、トークンはappend
とhello
となり、パターンに一致しません。私は入力append hello
、私は試合を得る行うときに今
Scanner scan = new Scanner(System.in);
scan.useDelimiter(System.lineSeparator());
if (scan.hasNext("append\\s[a-zA-Z0-9]*")) {
// ...
}
:
あなたは、例えば、他の何かに行区切り文字を区切り文字を設定することができます。
[Javaのファイルから2単語を読み込もうとする](https://stackoverflow.com/questions/25702124/trying-to-read-2-words-from-a-file-in-java)を参照してください。 –