JAVA正则表达式截取字符串的问题

吕檀溪 发布于 2013/11/23 17:27
阅读 2K+
收藏 1

  String msg="太升大厦 3室2厅 136平 82万 (36569411)?";
  Matcher m = Pattern.compile("\\(\\d+\\)").matcher(msg);
  System.out.println(m.group(0));

我想取出36569411这个八位数的字段,但是匹配正则表达式之后老是报出No match found的错误。那位大神能帮我解决一下呢?谢谢!!!

加载中
0
Timco
Timco

你这样写确实错了。正则的用法也是错的。以下都闲的蛋疼测试通过。

1,数字一直是八位的话:

Matcher m = Pattern.compile("(\\d{8})").matcher(msg);
		while(m.find()){
			System.out.println(m.group(1));
		}

2,数字不是定长的话,可以根据小括号匹配:

Matcher m = Pattern.compile("\\((\\d+)\\)").matcher(msg);
while(m.find()){
System.out.println(m.group(1));
}



或者

Matcher m = Pattern.compile("[(](\\d{8})[)]").matcher(msg);
	while(m.find()){
	   System.out.println(m.group(1));
	}



返回顶部
顶部