黑马程序员技术交流社区

标题: 正则知识点 [打印本页]

作者: wangkai    时间: 2015-5-30 21:06
标题: 正则知识点
正则表达式:符合一定规则的表达式。

作用:专门用于操作字符串。
特点:用一些特定的符号来表示一些代码操作,这样就简化了书写。

所以学习正则表达式,就是在学习一些特殊符号的使用。

好处:可以简化对字符串的复杂操作。
弊端:符号定义越多,正则越长,阅读性越差。

具体操作功能:

1,匹配:String matches方法。用规则匹配整个字符串,只要有一处不符合规则,就匹配结束,返回false。

2,切割:String split();

3,替换:String replaceAll();


class RegexDemo
{
public static void main(String[] args)
{
  //splitDemo("zhangsan.lisi.wangwu"," +");
  //splitDemo("c:\\abc\\a.txt","\\\\");
  //splitDemo("adlkkaqqqmxcmbczzzzdsl","(.)\\1+");
  //按照叠词完成切割。为了可以让规则的结果被重用
  //可以将规则封装成一个组。用()完成。组的出现都有编号。
  //从1开始。想要使用已有的组可以如果 \n(n就是组的编号) 的形式来获取。


  String str = "wee13898989000ksk123134jwkq189743764189";//将字符串中的数字替换成#。

  //replaceAllDemo(str,"\\d{5,}","#");
  

  String str1 = "adlkkaqqqmxcmbczzzzdsl";//将叠词替换成&。//将重叠的字母替换成单个字母。zzzz-->z
  
  replaceAllDemo(str1,"(.)\\1+","$1");
}

public static void replaceAllDemo(String str,String reg,String newStr)
{
  str = str.replaceAll(reg,newStr);

  System.out.println(str);
}

public static void splitDemo(String str,String reg)
{
  //String str = "zhangsan.lisi.wangwu";

  //String reg = " +";//按照多个空格来进行切割。
  //String reg = "\\.";

  String[] arr = str.split(reg);

  System.out.println(arr.length);

  for(String s : arr)
  {
   System.out.println(s);
  }
}

/*
作者: 夏尔    时间: 2015-5-31 08:24
还没学到正则。 马克一下
作者: mmakun    时间: 2015-5-31 08:57
正则表达式好像记的东西挺多
作者: guojiadui    时间: 2015-5-31 09:19
记得老师说的还不止这些功能
作者: Animal    时间: 2015-5-31 09:31
你可以任意输入一个数字代表
作者: 流水0215    时间: 2015-5-31 14:15
不错,支持一下




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