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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 渐行渐远 中级黑马   /  2014-11-8 11:28  /  3237 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

3黑马币
正则表达式如何表示5个连续相同的数字呢?度娘说用(\\d)\1{4},好像测试不对啊,求大神帮忙看看,还有就是A*和A+有区别吗?
public class TestZZ {
        public static void main(String[] args) {
                String telephonenumber="88888";
                System.out.println(check(telephonenumber));               
        }
        public static String check(String str){               
                        String regex="(\\d)\1{4}$";
                        if(str.matches(regex))
                                return str+"是5个连续相同的数字";
                        else
                                return str+"不是连续相同的数字";
                }
}

最佳答案

查看完整内容

你多看看基础视频正则表达式那章,反斜线是一对对出现的,你用\1代表了把1转义了,你要把\也转义就是\\1就对了代表了用的是第一组,A+代表1次或多次,A*代表0次或多次

11 个回复

倒序浏览
你多看看基础视频正则表达式那章,反斜线是一对对出现的,你用\1代表了把1转义了,你要把\也转义就是\\1就对了代表了用的是第一组,A+代表1次或多次,A*代表0次或多次
回复 使用道具 举报
本帖最后由 yuanlingqi 于 2014-11-8 20:01 编辑

String regex="(\\d)\\1{4}";这个才是对的,[size=14.3999996185303px]A*表示允许的个数可以是0个或多,A+表示个数至少要有1个
回复 使用道具 举报
  1. /*正则表达式如何表示5个连续相同的数字呢?度娘说用(\\d)\1{4},
  2. * 好像测试不对啊,求大神帮忙看看,还有就是A*和A+有区别吗?*/
  3. public class TestZZ {
  4.         public static void main(String[] args) {
  5.                 String telephonenumber = "88888";
  6.                 System.out.println(check(telephonenumber));
  7.         }

  8.         public static String check(String str) {
  9.                 String regex = "[0-9]{5}";//只修改了此处,[0-9]匹配一个0-9的数字,{5}这个数字连续出现5次
  10.                 if (str.matches(regex))
  11.                         return str + "是5个连续相同的数字";
  12.                 else
  13.                         return str + "不是连续相同的数字";
  14.         }
  15. }
复制代码

A*可以是零次,A+最少出现一次
回复 使用道具 举报
  1. /*正则表达式如何表示5个连续相同的数字呢?度娘说用(\\d)\1{4},
  2. * 好像测试不对啊,求大神帮忙看看,还有就是A*和A+有区别吗?*/
  3. public class TestZZ {
  4.         public static void main(String[] args) {
  5.                 String telephonenumber = "88888";
  6.                 System.out.println(check(telephonenumber));
  7.         }

  8.         public static String check(String str) {
  9.                 String regex = "[0-9]{5}";//只修改了此处,[0-9]匹配一个0-9的数字,{5}这个数字连续出现5次
  10.                 if (str.matches(regex))
  11.                         return str + "是5个连续相同的数字";
  12.                 else
  13.                         return str + "不是连续相同的数字";
  14.         }
  15. }
复制代码

A*可以是零次,A+最少出现一次
回复 使用道具 举报
yuanlingqi 发表于 2014-11-8 15:17
String regex="(\\d)\\1{4}";这个才是对的,A*表示允许的个数可以是0个或多,A+表示个数至少要有1个 ...

谢谢指教,看了一本书,估计写错了,A*和A+都说是0次以上,所以有疑问,谢谢指正
我去看视频学习了
回复 使用道具 举报
渐行渐远 发表于 2014-11-8 21:49
谢谢指教,看了一本书,估计写错了,A*和A+都说是0次以上,所以有疑问,谢谢指正
我去看视频学习了 ...

认可的话给分结帖呗,设置为最佳答案。。
回复 使用道具 举报
yuanlingqi 发表于 2014-11-8 22:58
认可的话给分结帖呗,设置为最佳答案。。

你不说还真不知道怎么弄。。。。
回复 使用道具 举报
渐行渐远 发表于 2014-11-8 23:12
你不说还真不知道怎么弄。。。。

靠,你逗我啊
回复 使用道具 举报
可以啊 
回复 使用道具 举报
void 发表于 2014-11-8 19:01
A*可以是零次,A+最少出现一次

手写难吗 ?
回复 使用道具 举报

:)




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