正则表达式

一、正则表达式

正则表达式描述了一种字符串的匹配模式。在我们学过的数据结构中,与子串的模式匹配有些內似。只不过可进行模糊匹配,功能非常强大。

二、语法

  一个正则表达式就是由普通字符(例如字符a到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。

  语法:

      /匹配对象的模式/ 其中,位于 “/” 定界符之间的部分就是将要在目标对象中进行匹配的模式。

     用户只要把希望查找匹配对象的模式内容放入“/”定界符之间即可。 例如,在字符串“abcd”中查找匹配模式bc,代码如下: /bc/

  下面的列出了在正则表达式中能够使用的字符列表及相关描述。

  

  

  

  注意的几点:

  (1)特殊字符转义:当我们匹配的内容里有(. + * ? \等等),需要在使用的前面加“\”表示。

                 

  (2)贪婪匹配与非贪婪匹配: 默认情况下,正则表达式使用最长匹配原则,即贪婪匹配原则。

     例如,要将“sssstress”中匹配“s+"  则默认尽可能让一个单元包含更多的字符。

             

     如果要匹配最短的。当字符“s+”紧跟任何其他限定符(*、+、?、{n}、{n,}、{n,m})之后时,匹配模式变成使用最短匹配原则,即非贪婪匹配原则。

        

三、String对象中的模式匹配

  1.match()    使用正则表达式模式对字符串进行查找,并将查找的结果作为数组返回,如果没有找到,则返回null。

                

  2.search()   返回正则表达式查找内容的第一个子串的位置,若没有找到,返回-1。

                     返回结果是:4

  3.replace()  先使用表达式模式对字符串进行搜索,再对搜索到的内容用自己指定的字符串进行替换。它返回的是一个字符串对象。

                                    

  4.split()   按照自定义分割标识符把一个字符串拆分成若干个子串,返回的是数组。

                                      

四、RexExp对象

  每一条正则表达式模式对应一个RegExp实例,有两种方式可以创建RegExp对象的实例。

  使用RegExp的显式构造函数

    语法: new RegExp("pattern"[,"flags"])           //即 new RegExp(" 模式 "[," 标记 "])

  使用RegExp的隐式构造函数,采用纯文本格式

    语法: /pattern/[flags] pattern部分为要使用的正则表达式模式文本,是必须的。

  在第一种方式中,pattern部分以JavaScript字符串的形式存在,需要使用双引号或单引号括起来;

  在第二种方式中,pattern部分嵌套在两个“/”之间,不能使用引号。 flags部分设置正则表达式的标志信息,是可选项。

                               

  RegExp对象的方法

   (1) rgExp.exec(str) 

      在"待查找的完整字符串"中,依次查找每个符合rgExp要求的关键词。返回值是本次找到的一个关键词及其位置。

      参数说明: rgExp:必选项。包含正则表达式模式和可用标志的正则表达式对象。 Str:必选项。要在其中执行查找的String对象或字符串文字。

                                                

         (2) rgexp.test(str) 

     检查字符串是否完全符合正则表达式的要求。

        参数说明: rgexp:必选项。包含正则表达式模式或可用标志的正则表达式对象。 Str:必选项。要在其上测试查找的字符串。

        只要验证,re中必须前加^后加$

   我是小白,写博客也是为了记录每天学习的点滴。我会慢慢改正,感谢纠正。

  

  

  

原文地址:https://www.cnblogs.com/ykgo/p/8231817.html