请教高手, 比较难的正规表达式 本帖最后由 javaglory 于 2010-12-01 22:46:39 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 要匹配的字符串中不能包含太多的" ",字符串不支持。public static void main(String[] args) { //String s="<SPAN style="COLOR: #ff0000">268.28</SPAN>"; String regex = "\\.*\\d{3}.\\d{2}\\.*"; Pattern p = Pattern.compile(regex); Matcher m = p.matcher(">268.28<"); if(m.find()) { System.out.println(m.group()); } } public static void main(String[] args) { String s1="<SPAN style='COLOR: #008000'>28.28</SPAN>"; List<String> resultList = getRegExpValsList(s1,"(?is)color.+?>(?!10{2}\\s+)(?=[1-2]\\d{2}[\\d\\.]*)([\\d\\.]+)"); //关键我是不知怎么调这句正则表达式,才会打印28.28 for(String tmpS:resultList ) ( System.out.println(resultList); }}public static List<String> getRegExpValsList(String regExp, String oriStr) { List<String> rtn=new ArrayList<String>(); Matcher m=Pattern.compile(regExp).matcher(oriStr); while(m.find()){ if(m.group(1)!=null) { rtn.add(m.group(1)); } } return rtn; } String s="<SPAN style=\"COLOR: #ff0000\">268.28</SPAN>"; Matcher m=Pattern.compile("(?i)<span.*?>(\\d*(\\.\\d.*)?)</span>").matcher(s); if(m.find()) System.out.println(m.group(1).trim()); 如果格式固定不变的话可以这样String s = "<SPAN style=\"COLOR: #ff0000\">268.28</SPAN>";System.out.println(s.replaceAll("^.*(\\d{3}\\.\\d{2}).*", "$1")); 防止268.28前后出现空格改一下 Matcher m=Pattern.compile("(?i)<span.*?>(\\s*\\d*(\\.\\d.*)?)</span>").matcher(s); JFrame的show()方法 问题 帮我看看这个小服务程序错在哪里了 急 在线等 PL/SQL中的for循环问题,在线等! 请教如何求两个double类型数据差的绝对值 关于getFontMetrics()的问题。 请问哪里有java图像编程图书的下载?找了很长时间都没找到,请帮帮忙! 初学Java :关于 switch case 问题 怎么格式化字符串??? 菜鸟求助!!!高分啊 求问java异常处理的问题 JAVA日期时间组合 初学android 问题
//String s="<SPAN style="COLOR: #ff0000">268.28</SPAN>";
String regex = "\\.*\\d{3}.\\d{2}\\.*";
Pattern p = Pattern.compile(regex);
Matcher m = p.matcher(">268.28<");
if(m.find()) {
System.out.println(m.group());
}
}
public static void main(String[] args) {
String s1="<SPAN style='COLOR: #008000'>28.28</SPAN>";
List<String> resultList = getRegExpValsList(s1,"(?is)color.+?>(?!10{2}\\s+)(?=[1-2]\\d{2}[\\d\\.]*)([\\d\\.]+)"); //关键我是不知怎么调这句正则表达式,才会打印28.28
for(String tmpS:resultList )
(
System.out.println(resultList);
}
}public static List<String> getRegExpValsList(String regExp, String oriStr) {
List<String> rtn=new ArrayList<String>();
Matcher m=Pattern.compile(regExp).matcher(oriStr);
while(m.find()){
if(m.group(1)!=null)
{
rtn.add(m.group(1));
}
}
return rtn;
}
Matcher m=Pattern.compile("(?i)<span.*?>(\\d*(\\.\\d.*)?)</span>").matcher(s);
if(m.find())
System.out.println(m.group(1).trim());
System.out.println(s.replaceAll("^.*(\\d{3}\\.\\d{2}).*", "$1"));
改一下
Matcher m=Pattern.compile("(?i)<span.*?>(\\s*\\d*(\\.\\d.*)?)</span>").matcher(s);