\ sが実際にすべての空白文字をキャプチャしていません

ジャック・コール:

私のJava 8のアプリでは、私は、渡されたテキスト内の空白文字をスキャンしています。しかし\s、私の正規表現のすべての空白をキャプチャしません。私はそれが私のテストでは、これまで捕捉しないことを発見したことを1つの空白がある改行なしスペース(ユニコード00A0)。これは、その問題に実行していた私の正規表現でした。

Pattern p = Pattern.compile("\\s");

これを解決するために、私が追加\h私の正規表現に:

Pattern p = Pattern.compile("[\\s\\h]");

今、私はその習慣を意識によって捕獲さである必要があること、他の空白がありますか\s\h

SDJ:

よると、パターン・クラスのドキュメントと一致する文字が\sあります\t\n\x0B\f\r

ただし、Unicodeは確かに全体の多くをサポート空白文字を例としては、

  • \u2002:スペースで
  • \u2003:スペースで
  • \u2003:シン・スペース
  • \u202F:狭いノーブレークスペース

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=226718&siteId=1