关于正则表达式

CWADQ 2009-09-04 07:23:11

使用elcipse:

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.*;


public class Test {


public static void main(String[] args) {

Pattern p = Pattern.compile("\\d(3,5)");
String s = "123-21561-156-00";
Matcher m = p.matcher(s);
p(m.find());
}
public static void p(Object o) {
System.out.println(o);
}

}
p(m.find());输出false.
按照正则表达式的定义,应该是输出TRUE才对啊,不知为何?不知有没有高手指点一下!
...全文
95 7 打赏 收藏 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
CWADQ 2009-09-04
  • 打赏
  • 举报
回复
谢谢楼上各位热心帮助!在此谢谢了!
CWADQ 2009-09-04
  • 打赏
  • 举报
回复
yanliang_xt说的对,刚开始学正则表达式,没仔细看。谢谢了
yanliang_xt 2009-09-04
  • 打赏
  • 举报
回复
我想楼主可能误把 "\\d{3,5}" 写成 "\\d(3,5)"

改下就可以打印true了。
bigbug9002 2009-09-04
  • 打赏
  • 举报
回复
Pattern p = Pattern.compile("(\\d{3,5}\\-)+\\d{3,5}");

这样试试吧,不知道你想匹配什么。
bigbug9002 2009-09-04
  • 打赏
  • 举报
回复
123-21561-156-00这个怎么会匹配3~5个数字位呢?

而且你的正则写的也不对.\\d(3,5)匹配的是一位数字字符这后是"3,5",比如匹配的是"13,5"或"23,5"、"03,5"之类的字符串。
yanliang_xt 2009-09-04
  • 打赏
  • 举报
回复
与楼上同样的z疑问。。
goodmrning 2009-09-04
  • 打赏
  • 举报
回复
Pattern p = Pattern.compile("\\d(3,5)"); //你这里的圆括号什么意思?

62,620

社区成员

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

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