黑马程序员技术交流社区

标题: 正则表达式 [打印本页]

作者: 渐行渐远    时间: 2014-11-8 11:28
标题: 正则表达式
正则表达式如何表示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+"不是连续相同的数字";
                }
}


作者: newLife    时间: 2014-11-8 11:28
你多看看基础视频正则表达式那章,反斜线是一对对出现的,你用\1代表了把1转义了,你要把\也转义就是\\1就对了代表了用的是第一组,A+代表1次或多次,A*代表0次或多次
作者: yuanlingqi    时间: 2014-11-8 15:17
本帖最后由 yuanlingqi 于 2014-11-8 20:01 编辑

String regex="(\\d)\\1{4}";这个才是对的,[size=14.3999996185303px]A*表示允许的个数可以是0个或多,A+表示个数至少要有1个
作者: void    时间: 2014-11-8 19:01
  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+最少出现一次
作者: void    时间: 2014-11-8 19:02
  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+最少出现一次
作者: 渐行渐远    时间: 2014-11-8 21:49
yuanlingqi 发表于 2014-11-8 15:17
String regex="(\\d)\\1{4}";这个才是对的,A*表示允许的个数可以是0个或多,A+表示个数至少要有1个 ...

谢谢指教,看了一本书,估计写错了,A*和A+都说是0次以上,所以有疑问,谢谢指正
我去看视频学习了
作者: yuanlingqi    时间: 2014-11-8 22:58
渐行渐远 发表于 2014-11-8 21:49
谢谢指教,看了一本书,估计写错了,A*和A+都说是0次以上,所以有疑问,谢谢指正
我去看视频学习了 ...

认可的话给分结帖呗,设置为最佳答案。。
作者: 渐行渐远    时间: 2014-11-8 23:12
yuanlingqi 发表于 2014-11-8 22:58
认可的话给分结帖呗,设置为最佳答案。。

你不说还真不知道怎么弄。。。。
作者: yuanlingqi    时间: 2014-11-8 23:28
渐行渐远 发表于 2014-11-8 23:12
你不说还真不知道怎么弄。。。。

靠,你逗我啊
作者: 海赛尔    时间: 2014-11-11 01:08
可以啊 
作者: 海赛尔    时间: 2014-11-11 01:10
void 发表于 2014-11-8 19:01
A*可以是零次,A+最少出现一次

手写难吗 ?
作者: 海赛尔    时间: 2014-11-11 01:11
yuanlingqi 发表于 2014-11-8 23:28
靠,你逗我啊

:)




嗯 




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