我做练习Java的正则表达式时,对于非一个字符串的解决方法始终没有找到相应的表达式规则。我的应用情况是这样的:使用编码来区分不同的部门,比如一个部门的编码为63100,我现在要匹配非这个部门的其它部门,这个正则表达式怎样来写?我试了[^6][^3][^1].*,这个只能匹配前3位中不出现631的情况,但是象63200这个就没法匹配,不符合要求。我要的是只要前3位不等于631即可。各位高手请支招?
调试欢乐多
if(!departmentCode.startsWith("631"))
{
//部门编码不是以631开头的
}
import java.util.regex.*;class TestPattern
{
public static void main(String[] args)
{
Pattern p = Pattern.compile("[\\w]+@[\\w]+\\.[\\w]+");
Matcher m = p.matcher("ssew_r@df_s.c_o_m");
Pattern p2 = Pattern.compile("[6][3][1][\\d]*");
Matcher m2 = p2.matcher("63200"); if(!m2.matches())
{
System.out.print("ok");
}
else
{
System.out.print("false");
}
}
}显示结果为ok
import java.util.regex.*;class TestPattern
{
public static void main(String[] args)
{
Pattern p2 = Pattern.compile("[6][3][1][\\d]*");
Matcher m2 = p2.matcher("63200"); if(!m2.matches())
{
System.out.print("ok");
}
else
{
System.out.print("false");
}
}
}
像这样的字符串,"2as45df1df2adf125fdf3",既有数字也有字母的,希望将它变成这样的一个串:
被字母隔开的数字符号如果不足两位的话在它前面补一个"0",如本例应该输出:
"02as45df01df02adf125fdf03"能否用正则表达式来做到?