1

特定のオブジェクト ID について、返された電子メールを解析する必要があります。問題は、メールが返されたときに、ID が複数の行に分割される可能性があることです。通常は次のようになります。

foo#bar-20130101-103000#12345

そこで気になるのが最後の「12345」です。問題は、その文字列が改行で分割される傾向があることです。次に例を示します。

foo#bar-20130101-103000#12
345

これが私の正規表現を引き起こします

[a-zA-Z0-9äöüÄÖÜß]{1,5}#[a-zA-Z0-9äöüÄÖÜß]{1,5}-\d{8}-\d{6}#(\d+)

「12345」ではなく「12」のみを検索します。ネットで見つけたすべてのヒントは、Pattern.MULTILINE および/または Pattern.DOTALL を使用することですが、複数行は ^ および $ アンカーにのみ影響し、dotall は . 改行文字にも一致します。問題は、私が持っていないことです。ここでも、数字だけが必要なので、実際には当てはまりません。では、正規表現をすべて一致させ、改行で止まらないようにするにはどうすればよいですか?

4

2 に答える 2

0

あなたの番号は最後にあるので、試すことができます:

"(?s)^[a-zA-Z0-9äöüÄÖÜß]{1,5}#[a-zA-Z0-9äöüÄÖÜß]{1,5}-\d{8}-\d{6}#(.*)$"

つまり、の後にすべてをキャプチャし#ますDOTALL

以下は、なしでも機能するはずDOTALLです。

"^[a-zA-Z0-9äöüÄÖÜß]{1,5}#[a-zA-Z0-9äöüÄÖÜß]{1,5}-\d{8}-\d{6}#[\\d\\r\\n]+$"
于 2013-11-13T07:54:30.870 に答える
0

[\d\r\n]数字または改行に一致するので、試してみてください([\d\r\n]+)

于 2013-11-13T07:56:07.843 に答える