0
String s = "=?ISO-2022-JP?B?GyRCRZi?= =?ISO-2022-JP?B?QDg7OlWiE8?= =?ISO-2022-JP?B?JTkkT=?= =?ISO-2022-JP?B?kjaHaA?=";
String replRegex = "[^=]\\?= =\\?ISO-2022\\-JP\\?B\\?";

stringtoDecode= s.replaceAll(replRegex, "" );

私が得た結果は

=?ISO-2022-JP?B?GyRCRZQDg7OlWiEJTkkT=?= =?ISO-2022-JP?B?kjaHaA?=

しかし、私が期待しているのは

=?ISO-2022-JP?B?GyRCRZiQDg7OlWiE8JTkkT=?= =?ISO-2022-JP?B?kjaHaA?=

結果に文字?= =?ISO-2022-JP?B?がありません。"?= =?ISO-2022-JP?B?"が主宰していない場合は空文字列に置き換えたい"="

私はここで何か悪いことをしていますか? 提案してください

4

1 に答える 1

0

その[^=]部分はキャラクターを消費していますi。この「消費された」文字をキャプチャして置き換えることができます。

String replRegex = "([^=])\\?= =\\?ISO-2022-JP\\?B\\?";
stringtoDecode= s.replaceAll(replRegex, "$1" );

イデオネデモ

ハイフンをエスケープする必要がないことに注意してください。(ハイフンをエスケープする必要があるのは、文字クラスでリテラル ハイフンを意味し、ハイフンがその文字クラスの中間のどこかにある場合だけです。

出力:

=?ISO-2022-JP?B?GyRCRZiQDg7OlWiE8JTkkT=?= =?ISO-2022-JP?B?kjaHaA?=
于 2013-09-18T11:43:40.210 に答える