求正则表达式 有一串字符,中间存在如果“,”,能否使用正则匹配出中间某两个“,”之间的数据。例如“abc,defg,bcda,fegd,fdaas,fdafa”,匹配第3、4个“,”之间的字符“fegd”。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public static void main(String[] args) { String str = "abc,defg,bcda,fegd,fdaas,fdafa"; Matcher m = Pattern.compile(".*?,.*?,.*?,(.*?),.*").matcher(str); if (m.find()) { System.out.println(m.group(1)); } } 为什么不直接split(",")进行分割 str = str.replaceAll(".*?,.*?,.*?,(.*?),.*", "$1");也可以 split固然可以。但是如果需要使用正则式,该如何解决呢? String str = "abc,defg,bcda,fegd,fdaas,fdafa";System.err.println(str.replaceAll("[^,]+,[^,]+,[^,]+,", "").replaceAll(",.+", "")); 新手问题:类和对象 求助高人! Iterator的问题 List元素转换成long型 怎么开两个线程同时运行(急,谢谢大家) java字符串比较问题 一个静态变量的问题 JAVA FOR语句问题 JAVA GUI做统计报表。 编译都通过了,就是运行不起来。。新人跪求 求教,JAVA写的发送邮件的程序能不能 用JMAIL邮件服务器发送?我在线等!谢谢 java main 方法传值问题 如何在Mac系统下安装Oracle?
public static void main(String[] args) {
String str = "abc,defg,bcda,fegd,fdaas,fdafa";
Matcher m = Pattern.compile(".*?,.*?,.*?,(.*?),.*").matcher(str);
if (m.find()) {
System.out.println(m.group(1));
}
}
str = str.replaceAll(".*?,.*?,.*?,(.*?),.*", "$1");
也可以
String str = "abc,defg,bcda,fegd,fdaas,fdafa";
System.err.println(str.replaceAll("[^,]+,[^,]+,[^,]+,", "").replaceAll(",.+", ""));