0

私は String.matches の非常に奇妙な動作をしています:

requestString.matches(".*")
    (boolean) false

一方、 requestString は次のようなものです

「HTTP/1.1 200 OK - OK
[...]
Content-Type: text/xml; Charset=iso-8859-1
Content-Length: 1545」
+ もっと...

当然、「HTTP/\\d\\.\\d」に対してテストしたいのですが、明らかにこれは8番目に失敗します: requestString.matches("HTTP/\\d\\.\\d")

requestString の文字列は、Socket 接続を介して受信され、iso-8859-1 エンコーディングで送信されます。ここにコードがあります、

StringBuilder result = new StringBuilder();
int ch;
while ( ! timeoutExceeded() && (ch = reader.read()) != -1) {
    result.append((char)ch);
}
String requestString = result.toString()

コードは Android SDK で実行されています。私は何が欠けていますか?エンコーディングが問題ですか?

解決策: DotAll フラグを試してみたヒントのおかげで (再び!)、動作します:

requestString.matches("(?s).*HTTP/\\d\\.\\d.*")
4

2 に答える 2