2

Javaのmatchesメソッドを使用して、ドットで始まる文字列を一致させようとしています。これが機能しない理由:

".why?".matches("\\.*");

単一のスラッシュを使用すると、無効なエスケープ シーケンスのエラーが発生します。前もって感謝します

4

2 に答える 2

7

"\\.*"0 個以上'.'の s で構成される文字列に一致します。次の (引用された) 文字列に一致します。

""
"."
".."
"..."

(等々)

あなたが望む:"\\..*"代わりに。.デフォルトでは改行に一致しないため、次の文字列には一致しないことに注意してください。

".Why? \n Not!"

このような文字列を一致させるには、DOT-ALL を有効にする必要があります。"(?s)\\..*"

于 2012-04-18T19:25:24.567 に答える
1

自分で試してみました。これは私のために働く

System.out.println(".why?".matches("^\\..*"));

「。」が1つ足りないだけです。「なぜ?」に合わせて。部。

于 2012-04-18T19:58:18.343 に答える