确定字符串是否包含^和数字 示例:^我喜欢Android2 我想在变量中得到单词,只要字符串在末尾有^和数字,我想得到没有^和数字的单词,(它可能有:“^我爱2 ^ Android3这么多“)< - ”我爱“=有色,”Android“=有色,”太多“=正常文字。那么如果mumber在0-9之间,我必须为这个数字指定一个颜色。最后我想在TextView中用颜色显示字符串,我想我必须使用HTML格式;)
我的正则表达式是:
Pattern p = Pattern.compile("^(.*):(\\d+)$");
如果您有想法指定颜色,请给我打电话:) 但是不起作用:s 有人能帮我吗 ? :)对不起英语不好的英语
答案 0 :(得分:0)
^
作为正则表达式(字符串的开头)中的特殊含义,因此您必须将其转义:\\^
答案 1 :(得分:0)
您可以使用以下正则表达式:
(?<=\\^)([^0-9]+)
可以使用以下方法提取普通文本:
([^^0-9]+$)
颜色分配可以通过以下方式完成:
Matcher mat = Pattern.compile("(?<=\\^)([^0-9]+[0-9]+)|([^^0-9]+$)")
.matcher("^I love2 ^Android322 so much");
while(matcher.find()){
String match = matcher.group();
String n= match.replaceFirst("^[^0-9]+", "");
if(n.length()==1) {
System.out.println(match.replaceFirst("[0-9]+$", "")+"=color_"+n);
} else {
System.out.println(match.replaceFirst("[0-9]+$", "")+"=normalText");
}
}
但是,对于实际的颜色分配,n(单个数字)不代表android.graphics.Color定义的常量。在提供的字符串中说1表示RED,9表示蓝色,然后添加到 if(true)阻止以下内容:
int color = Integer.parseInt(n)
switch(color){
case 1 : color = 0xffff0000; break;
case 9 : color = 0xff0000ff; break;
}
textview.setColor(color);
我不知道如何为部分文字指定颜色。我希望你能找到答案。