黑马程序员技术交流社区

标题: java习题 [打印本页]

作者: 凝聚    时间: 2013-9-25 17:15
标题: java习题
本帖最后由 杨增坤 于 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)

请问该怎么解决


作者: 肖亚光    时间: 2013-9-25 17:20
   String regex="[1-9] [0-9]{4-14}";
对么?
{4-14} 还是{4,14}
作者: 罗凯健    时间: 2013-9-25 17:24
{4-14}?{4,14}吧,你看看
作者: 暮雨    时间: 2013-9-25 17:29
帮你验证了一下,这样是对的
  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的数。希望可以帮到你。
作者: 黑马戴帅军    时间: 2013-9-25 17:48
只能输入有1~3位小数的正实数:"^[0-9]+(.[0-9]{1,3})?$"
这是我在网上找的正则表达式语法中的一个,这个是完整的书写形式。
^:匹配字符串开始。
$:匹配字符串结尾。
关于这点,你可以参考 http://baike.baidu.com/view/94238.htm
作者: 凝聚    时间: 2013-9-25 20:58
暮雨 发表于 2013-9-25 17:29
帮你验证了一下,这样是对的对于正则表达式regex="[1-9][0-9]{4,14}";这里是指第一个字母是1到9中的一个, ...

谢了,调试通过了





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2