PHP-正则表达式随笔

来源:互联网 发布:简易返利源码 编辑:程序博客网 时间:2024/06/16 22:45
正则表达式
    正则用来查找指定的字符串、匹配、替换指定的字符串


    1、什么是正则表达式
        正则表达式是一组描述字符串特征的模式,用于匹配一组字符串。
        这种模式本身也是字符串只不过有一些规则和语法。

    2、正则表达式用来解决字符串的搜索、替换、分隔

    3、在PHP中学习正则表达式学习什么?
        正则表达式的写法。
        正则表达式的处理函数。


        我们讲也是着重讲解正则表达式的写法。

        他们之间的关系:写正则表达式用正则表达式的处理函数来进行处理。


        注意:正则表达式如果没有正则的处理函数他就是普通字符串。

    4、正则表达式由什么组成,应该怎么写。
        组成:
            1、定界符,告诉正则表达式从哪里开始到哪里结束,一般来说 /正则表达式的具体内容 /
            注意:定界符一般为//,但是可以除了数字、字母、反斜线不可以作为定界符外,其他的都可以。

            2、原子,最小的匹配单位,要找的字符,放在定界符中,每一个正则表达式最少有一个原子,因为最少要匹配一次,一个原子匹配一次
                a)、普通的字符 0-9 a-z A-Z 多个字符就代表匹配多个。
                b)、非打印字符
                    \r 回车
                    \n 换行
                    \t 制表符
                c)、自定义原子表[]作为原子
                [a-zA-Z0-9_]
                [a-c]
                d)、使用通用字符作为原子
                    \d 任意一个数字  0-9
                    \D 非数字

                    \w 任意一个字符 a-z A-Z 0-9 _
                    \W 任意一个非字

                    \s 空白  \t \r \n
                    \S 非空白

                e)、转义后的元字符作为原子。
                    除了a-z A-Z 0-9 这些原子外其他的符号都加上\让他失去原来的意义。

            3、元字符,修饰原子的功能和限定原子的功能(放在定界符中)
                [] 原子表  用来指定一个范围。
                ^ 在原子表中的第一个位置出现表示排除。

                * 代表前面的原子可以出现0次1次或多次。必须放在原子或原子表的后面。
                + 代表前面的原子可以出现1次或多次。
                ? 代表前面的原子可以出现0次或1次

                {n},代表前面的原子只能出现n次。
                {n,} 代表前面的原子最少出现n次最多出现的次数不限。
                {n,m} 代表前面的原子最少出现n次最多出现m次

                | 代表或的关系。 两边的原子只要有一个出现就可以。优先级是最低的。

                . 代表任意一个字符

                ()的作用:
                    1、提高优先级
                    2、用来生成子模式。整个正则是一个大的模式,小括号就是大模式中的子模式
                    3、反向引用。
                    4、将一个小的原子变成一个大原子(mysql)+

                    mysql+   mysqlllll mysql mysqll




                ^ 写在正则表达式的最前面表示以x开始。必须写在正则表达式的最前面。

                $ 表示以x结尾,必须写在正则表达式的最后面。
            4、模式修正符
                对正则进行修正用的单个符号(写在定界符的外面,写在最右边)
                注意:一个符号代表一个功能,可以组合使用。

                i:让正则表达式不区分大小写。正则表达式默认是区分大小写的
                m:将匹配的字符串中的每个断行都当作新的一行来处理(默认的时候当作一行来处理的)
                s:.默认的情况下不能匹配\r\n,加上s之后就能够匹配\r\n了。
                x:修正正则表达式可以省略空白。

                U:取消贪婪,在使用(.*)正则表达式比较贪婪,会匹配最后一个符合要求的内容。U可以让他们匹配第一个符合要求的内容。

                但是不建议使用U,因为U正则表达式的修正符在PHP里面有但是在其他语言里面没有,我们使用(.*?)来取消贪婪。
        正则表达式就是普通的字符串使用单引号或双引号包含起来。

    写正则表达式的技巧:
        1、正则表达式也是一种语言。
        2、把你要匹配的正则表达式的各种情况,规则的样本都列出来。然后再写。
        3、正则表达式匹配的越复杂,那么正则表达式写的越复杂。
        4、能用字符串函数解决的就用字符串函数解决,不要用正则表达式。

1 0