日期:2014-05-20  浏览次数:20712 次

===================正则表达式来一个===========
有个字符串,如下,前面是数字,后面是英文字母,要把它们分成两个字符串,分别为数字和字母

String str = "123456ABC";

------解决方案--------------------
String s = "123456ABC";
        Pattern p = Pattern.compile("(\\d+
------解决方案--------------------
[a-zA-Z]+)");
        Matcher m = p.matcher(s);
        while(m.find()) {
            System.out.println(m.group());
        }

------解决方案--------------------

public static void main(String[] args) {
     String s = "123456ABC";
     String[] ss = s.split("(?<=[0-9])(?![0-9])
------解决方案--------------------
(?<=[A-Za-z])(?![A-Za-z])
------解决方案--------------------
(?<=[\\u4e00-\\u9fa5])(?![\\u4e00-\\u9fa5])");
     for(String s1:ss){
        System.out.println(s1);
     }
    }

------解决方案--------------------
引用:
有个字符串,如下,前面是数字,后面是英文字母,要把它们分成两个字符串,分别为数字和字母
Java code?1String str = "123456ABC";


解读:


//匹配0-9任意数字 
------解决方案--------------------
是或者的意思,或者小写a到z 大写A到Z 
Pattern p = Pattern.compile("(\\d+
------解决方案--------------------
[a-zA-Z]+)");

------解决方案--------------------
引用:
引用:引用:有个字符串,如下,前面是数字,后面是英文字母,要把它们分成两个字符串,分别为数字和字母
Java code?1String str = "123456ABC";

解读:

Java code?12//匹配0-9任意数字 
------解决方案--------------------
是或者的意思,或者小写a到z 大写A到Z Pattern ……


\\d+的意思就是 0-9的意思,+号是说,出现1次或者多次
------解决方案--------------------
引用:
引用:引用:有个字符串,如下,前面是数字,后面是英文字母,要把它们分成两个字符串,分别为数字和字母
Java code?1String str = "123456ABC";

解读:

Java code?12//匹配0-9任意数字 
------解决方案--------------------
是或者的意思,或者小写a到z 大写A到Z Pattern ……



String str = "12 123";

//替换原来的数字,替换成什么呢,替换成前面多加两个零
//注意这个括号的意思是还要用到这个数字所以封装成了一个组
//$1就是取到第一组 在第一组前面加两个0
str = str.replaceAll("(\\d+)","00$1");
System.out.println(str);

//讲新生成的字符串在进行替换,0*的意思是   0没有或者多次
//\\d{4}数字出现4次,$1取第一组
str = str.replaceAll("0*(\\d{4})","$1");
System.out.println(str);

------解决方案--------------------