黑马程序员技术交流社区

标题: 关于正则表达式的问题 [打印本页]

作者: hmyuanqi    时间: 2014-8-31 18:06
标题: 关于正则表达式的问题
class  RegTest
{
public static void main(String[] args)
{
  //checkMail();
  splitDemo("erkktyqqquizzzzzo","(.)\\1+");//按照叠词完成切割。??
}
public static void checkMail()
  {
  String mail = "abc12@sina.com";
  String reg = "[a-zA-Z0-9_]+@[a-zA-Z0-9]+([url=file://\\.[a-zA-Z]+)+]\\.[a-zA-Z]+)+";    //[/url]  ??
  System.out.println(mail.matches(reg));
  }
public static void splitDemo(String str,String reg)
  {
  String[] arr = str.split(reg);
  for(String s : arr)
   {
   System.out.println(s);
   }
  }
}
在这段代码里面有两个地方我打了问号,我想问的是,不是说组的出现都有编号吗?就像(.)\\1+,那为什么在([url=file://\\.[a-zA-Z]\\.[a-zA-Z[/url]]+)+代码上,括号后面不是\\1+ 呢?不理解,而且我互换着运行了一下,得不到所要结果,谁能帮忙解释一下。

作者: careit    时间: 2014-8-31 19:44
不太理解你的问题:
试着说一下:
str=erkktyqqquizzzzzo
reg=(.)\\1+
1:String[] arr = str.split(reg);
split 方法以重叠词作为分隔界限  erkktyqqquizzzzzo
返回除了重叠词以为的字符,每一部分都存在数组中
2:你想做的是 邮箱的正则表达比对吧

作者: hmyuanqi    时间: 2014-8-31 20:34
我是说我在后面两个打了问号的地方,组后面,也就是括号后面写的方式为什么不一样?




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