首页 > 代码库 > 黑马程序员——正则表达式

黑马程序员——正则表达式

 正则表达式:符合一定规则的表达式

         作用:用于专门操作字符串

         好处:可以简化对字符串的复杂操作

         弊端:符号定义越多,正则表达式越长,阅读性越差

         特点:用一些特殊的符号来表示一些代码操作,这样可以简化书写,所以学习正则表达式,就是在学习一些特殊符号的应用

使用方式:四种,分别为匹配、切割、替换、获取

       (一)匹配

      在JDK API中,详细的明确了各种字符及其所表示意义,比较常用的有一下几项:

      [abc]  该位上是a或b或c              [a-z]  该位上是a到z的字符            [^abc]  任何字符,除了a,b,c              [a-zA-Z]  任意一个英文字母

      [a-d[m-p]]a到d或m到p                .      任何字符                           \d        数字                                       \D           非数字

      \s         空白字符                         \S    非空白字符                        \w       单词字符,即[a-zA-Z_0-9]          \W          非单词字符

      符号规定太多,现在也只能勉强记下这些比较常用的,真正用的时候得多查查JDK API了.

      一些比较常用的正则表达式:

      匹配电话号码的正则表达式:"1[358]\\d{9}"

      匹配邮箱的正则表达式:"[a-zA-Z0-9_]+@[a-zA-Z0-9]+(\\.[a-zA-Z]+)+";(较为精确的匹配)

                                      "\\w+@\\w+(\\.\\w+)+";(相对不太精确的匹配)

       (二)切割

        String str="zhangsan     lisi wangwu       ";String reg=" +"; //加号表示一次或多次     ?一次或一次也没有           * 零次或多次           x{n}  n次   

                                                                                             //x{n,}   至少n次          x{n,m}至少n次,至多m次。

        组的概念:将字符串"wwwtredhhhhqqqqqhuyrtoo"中的重复字符减少至一个。

        使用正则表达式"(.)\\1+"

        组的概念:按照叠词完成切割,为了可以让规则的结果被重用,可以将规则封装成一个组,用()完成,组的出现都有编号,从1开始,想要使用已有的组可以通过

        \n(n是组的编号)的形式来获取。

        (三)替换

         使用replaceAll(String reg,String newString)方法,可定义一个方法如:replaceAllDemo(String str,String reg,Sring newStr),其中str是被操作字符串,

         reg是正则表达式,newStr是替换后的字符串。

         将"qwe12344scdc343546rtyu6767u"重的数字替换成"#"      reg="\\d+";

         将重叠的字符替换成单个字符                                              reg="(.)\\1+"   后面引用这个组时用"$1"

         (四)获取

          将字符串中符合规则的字串取出

          步骤:1,将正则表达式封装成对象

                   2,让正则对象和要操作的字符串相关联

                   3,关联后,获取正则匹配引擎

                   4,通过引擎对符合规则的子串进行操作,比如取出

          练习1、找出字符串“ming tian jiu yao fang jie le,da jia”中由三个字母组成的字符串

          代码如下:

          技术分享

          技术分享               

           运行结果如下:

                技术分享

以上是我关于正则表达式的学习总结,不足之处,多多指教。

               

黑马程序员——正则表达式