Android Splitting String或使用matcher更改它

时间:2012-09-10 03:02:06

标签: java android regex

我正在拆分此字符串

String xml_getMembermob = "Art C. Cauyao<$@PERX@$>501912568<$@ENDPERX@$>Tessa Rose Brainard<$@PERX@$>510831686<$@ENDPERX@$>"

我发现我不能在一个简单的问题上拆分这种字符串,所以我创建了这段代码

String re1=".*?"; 
String re2="(<\\$@ENDPERX@\\$>)";
Pattern p = Pattern.compile(re1+re2,Pattern.CASE_INSENSITIVE | Pattern.DOTALL);
StringBuffer sb = new StringBuffer();
Matcher m = p.matcher(xml_getMembermob);
if (m.find())
{
   String tag1=m.group(1);
   Log.i("returned string get", ""+tag1); 
   String replacement = "$1 try $2";
   m.appendReplacement(sb, replacement);
   String asa = sb.toString();
   Log.i("buffered string" + "",asa);
    //m.appendReplacement(myStringBuffer,"wew");
}

现在我在此部分收到错误之前

m.appendReplacement(sb, replacement);

我得到了日志说

09-10 10:53:44.878: I/returned string get(1198): <$@ENDPERX@$>

所以我可以得出结论,上面的代码正在运作。

你能帮我拆分这个字符串或更改一些字,以便我可以轻松拆分吗?

1 个答案:

答案 0 :(得分:0)

要在文本中查找模式并替换它,请使用:

Pattern p = Pattern.compile("find and replace me!");
Matcher m = p.matcher("a very long string that contains zero or more find and replace me! pattern inside");
StringBuffer sb = new StringBuffer();
boolean result = m.find();
while(result) {
    m.appendReplacement(sb, "I found you!");
    result = m.find();
}
m.appendTail(sb);
String strWithLink = sb.toString();

此代码将在您的字符串中搜索并替换所有&#34;查找并替换我!&#34;和#34;我找到了你!&#34;。