zoukankan      html  css  js  c++  java
  • 正则表达式

    一、正则表达式

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

    二、语法

      一个正则表达式就是由普通字符(例如字符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中必须前加^后加$

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

      

      

      

  • 相关阅读:
    如何判断PHP 是ts还是nts版的
    让IE支持placeholder属性
    解决点击浏览器后退按钮页面过期的问题
    git记住用户名密码
    php保存base64数据
    azure注册码
    SQL Server 2008 R2密钥序列号
    SQL允许远程访问
    PHP生成表格
    PHP发起get post put delete请求
  • 原文地址:https://www.cnblogs.com/ykgo/p/8231817.html
Copyright © 2011-2022 走看看