日期:2014-05-20 浏览次数:20904 次
import java.util.regex.Matcher; import java.util.regex.Pattern; public class Test { public static void main(String[] args) { String str = "第一个:1111<br/>第一个:2222<br/>第二个:3333<br/>"; Pattern p = Pattern.compile("第一个:(.*?)<br/>第二个:(.*?)<br/>"); Matcher m = p.matcher(str); if (m.find()) { System.out.println(m.group(1)); System.out.println(m.group(2)); } } }
String str = "第一个:1111<br/>第一个:2222<br/>第二个:3333<br/>"; Pattern p = Pattern.compile("第一个:1111<br/>第一个:(.*?)<br/>第二个:(.*?)<br/>"); Matcher m = p.matcher(str); if (m.find()) { System.out.println(m.group(1)); System.out.println(m.group(2)); } }
------解决方案--------------------
Pattern p = Pattern.compile("第一个:(\\d*?)<br/>第二个:(\\d*?)<br/>");
把.改成\\d 肯定行
------解决方案--------------------
.的范围太大了 是字符就匹配 打印出来的肯定是一大串字符 而不是楼主要的数字
------解决方案--------------------
Pattern p = Pattern.compile("第一个:([0-9]*?)<br/>第二个:[0-9]*?<br/>");
------解决方案--------------------
如果只是要数字,可以用\\d匹配数字
------解决方案--------------------
同意jeojeo的说法
------解决方案--------------------