A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 凝聚 中级黑马   /  2013-9-25 17:15  /  2244 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨增坤 于 2013-9-25 20:13 编辑

public static void main(String[] args) {
                 QQq();
        }
        public static void QQq()
        {
                String qq="1232435";
                String regex="[1-9] [0-9]{4-14}";
                boolean flag=qq.matches(regex);
                if(flag)
                        System.out.println(qq+"......is ok");
                else
                        System.out.println(qq+"..nono");
        }
上述代码显示错误为:
Exception in thread "main" java.util.regex.PatternSyntaxException: Unclosed counted closure near index 13[1-9] [0-9]{4-14}             ^        at java.util.regex.Pattern.error(Pattern.java:1713)        at java.util.regex.Pattern.closure(Pattern.java:2759)        at java.util.regex.Pattern.sequence(Pattern.java:1889)        at java.util.regex.Pattern.expr(Pattern.java:1752)        at java.util.regex.Pattern.compile(Pattern.java:1460)        at java.util.regex.Pattern.<init>(Pattern.java:1133)        at java.util.regex.Pattern.compile(Pattern.java:823)        at java.util.regex.Pattern.matches(Pattern.java:928)        at java.lang.String.matches(String.java:2090)        at twentyfive.one3.QQq(one3.java:12)        at twentyfive.one3.main(one3.java:6)

请问该怎么解决

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

5 个回复

正序浏览
暮雨 发表于 2013-9-25 17:29
帮你验证了一下,这样是对的对于正则表达式regex="[1-9][0-9]{4,14}";这里是指第一个字母是1到9中的一个, ...

谢了,调试通过了
回复 使用道具 举报
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"
这是我在网上找的正则表达式语法中的一个,这个是完整的书写形式。
^:匹配字符串开始。
$:匹配字符串结尾。
关于这点,你可以参考 http://baike.baidu.com/view/94238.htm

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
帮你验证了一下,这样是对的
  1. public class Test1
  2. {
  3.         public static void main(String[] args) {
  4.                 QQq();
  5.         }
  6.         public static void QQq()
  7.         {
  8.                 String qq="1232435";
  9.                 String regex="[1-9][0-9]{4,14}";
  10.                 boolean flag=qq.matches(regex);
  11.                 if(flag)
  12.                         System.out.println(qq+"......is ok");
  13.                 else
  14.                         System.out.println(qq+"..nono");
  15.         }
  16. }
复制代码
对于正则表达式regex="[1-9][0-9]{4,14}";这里是指第一个字母是1到9中的一个,剩下的字符是4到14个0到9的数。希望可以帮到你。

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
{4-14}?{4,14}吧,你看看
回复 使用道具 举报
   String regex="[1-9] [0-9]{4-14}";
对么?
{4-14} 还是{4,14}

评分

参与人数 1技术分 +1 收起 理由
杨增坤 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马