public static final Pattern emoRegx2 = Pattern.compile("_(.*?)_");
public static final Pattern emoRegx3 = Pattern.compile("([|][|])_(.*?)_([|][|])"); // ( | <---한국 원 표시 위에 있는 글자 입니다.)
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String message2 = "_abc_ _def_";
String message3 = "||_abc_|| ||_def_||";
Matcher matcher2 = emoRegx2.matcher(message2);
while(matcher2.find()){
message2 = message2.replaceFirst(matcher2.group(0), "<img src=\"emoticon_" + matcher2.group(1) + ".png\">");
}
Log.e("Start","pass 333 : "+message2);
Matcher matcher3 = emoRegx3.matcher(message3);
while(matcher3.find()){
message3 = message3.replaceFirst(matcher3.group(), "<<<<"+matcher3.group(1)+">>>>");
}
Log.e(" --- ", "message3 : "+message3);
}
결과
pass 333 : <img src="emoticon_abc.png"> <img src="emoticon_def.png">
message3 : <<<<||>>>><<<<||>>>>||_abc_|| ||_def_||
pass 333결과는 제대로 나오는데, message3는 결과가 이상합니다. replasefirst에서 잘못 처리를 한건지 아니면, 정규식을 잘못 만든건지요?