2

これはとてもシンプルですが、私を困らせているようです。

次のテキスト行があります。

for        months to   

次の正規表現と一致させようとしています:

for\s*months\s*to

この正規表現を次のように読みます。

  1. 「for」という単語が必要です
  2. 任意の量のスペースが続く
  3. 「月」という単語が続きます
  4. 任意の量のスペースが続く
  5. 「to」という単語が続きます。

そして私には、これは一致するはずですが、一致しません。私がどこを間違えたのか誰にもわかりますか?

4

2 に答える 2

3

末尾のスペースが原因です。

これを試して:

    Pattern p = Pattern.compile("for\\s*months\\s*to\\s*");
    Matcher m = p.matcher("for        months to   ");
    System.out.println(m.matches());
于 2013-01-16T19:37:03.867 に答える
1

ほとんどの場合、前後に空白があります。youを使用すると、文字列全体String.matches(String regex)に一致する必要があります。

試す"\\s*for\\s+months\\s+to\\s*"

于 2013-01-16T19:33:38.210 に答える