首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

Java 正则表达式,圣人请进!

2011-12-25 
Java 正则表达式,高人请进!!例:对于如下字符串:4.50XFLAX4.5 , 120.00YR用正则表达式来区分这两种类型

Java 正则表达式,高人请进!!
例:对于如下字符串:
"4.50XFLAX4.5 "   , "120.00YR   "
用正则表达式来区分这两种类型的字符串,
注:前面的是数字+字符+数字
        后面的是数字+字符
另外,对于前面的字符串要求取出“4.50XF”这部分,数值部分(4.50)是任意数值,字符部分(XF)是固定长度为2位的字符!

[解决办法]
Pattern pattern1=Pattern.compile( "^(\\d+(\\.\\d+)?[A-Z]{2})[A-Z]*\\d+(\\.\\d+)?$ ");
Pattern pattern2 = Pattern.compile( "^\\d+(\\.\\d+)?[A-Z]{2}$ ");
String str1= "4.50XFLAX4.5 ";
String str2= "120.00YR ";
Matcher matcher=pattern1.matcher(str1);
if(matcher.matches()){
System.out.println( "1:\t "+matcher.group(1));
}
else{
matcher = pattern2.matcher(str1);
if(matcher.matches())
System.out.println(2);
}

matcher=pattern1.matcher(str2);
if(matcher.matches()){
System.out.println( "1:\t "+matcher.group(1));
}
else{
matcher = pattern2.matcher(str2);
if(matcher.matches())
System.out.println(2);
}
[解决办法]
//两种情况都可以......
String str="4.50XFLAX4.5";
//String str="120.00YR"; 

String ptn = "((?<=[a-zA-Z])(?=[0-9|\\.]))|((?=[a-zA-Z])(?<=[0-9|\\.]))";
String[] s = str.split(ptn);
for (int i = 0; i < s.length; i++) {
System.out.println(s[i]);
}

热点排行
Bad Request.