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

以明会友 2007-08-10 05:25:30
例:对于如下字符串:
"4.50XFLAX4.5" ,"120.00YR "
用正则表达式来区分这两种类型的字符串,
注:前面的是数字+字符+数字
后面的是数字+字符
另外,对于前面的字符串要求取出“4.50XF”这部分,数值部分(4.50)是任意数值,字符部分(XF)是固定长度为2位的字符!
...全文
207 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
andnnl 2007-10-22
  • 打赏
  • 举报
回复
//两种情况都可以......
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]);
}
believefym 2007-08-10
  • 打赏
  • 举报
回复
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);
}

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧