• 技术文章 >后端开发 >PHP问题

    php正则表达式怎么写

    VV2019-09-12 17:45:10原创47

    正则表达式时工作中非常常用并且作用非常强大的的一种技术,但是学起来略显枯燥。今天,为大家讲一下,在php中正则表达式该如何写?

    分隔符

    当使用 PCRE 函数的时候,模式需要由分隔符闭合包裹。分隔符可以使任意非字母数字、非反斜线、非空白字符。

    经常使用的分隔符是正斜线(/)、hash符号(#) 以及取反符号(~)。下面的例子都是使用合法分隔符的模式。

    /foo bar/
    #^[^0-9]$#
    +php+
    %[a-zA-Z0-9_-]%

    如果分隔符需要在模式内进行匹配,它必须使用反斜线进行转义。如果分隔符经常在 模式内出现, 一个更好的选择就是是用其他分隔符来提高可读性。

    /http:\/\//
    #http://#

    需要将一个字符串放入模式中使用时,可以用 preg_quote() 函数对其进行 转义,它的第二个参数(可选)可以用于指定需要被转义的分隔符。

    除了上面提到的分隔符,也可以使用括号样式的分隔符,左括号和右括号分别作为开始和结束 分隔符。

    {this is a pattern}

    可以在结束分隔符后面增加模式修饰符。 下面的例子是一个大小写不敏感的匹配:

    #[a-z]#i

    转义序列

    反斜线有多种用法。首先,如果紧接着是一个非字母数字字符,表明取消 该字符所代表的特殊涵义。这种将反斜线作为转义字符的用法在字符类 内部和外部都可用。

    比如,如果你希望匹配一个 "*" 字符,就需要在模式中写为 "\*"。 这适用于一个字符在不进行转义会有特殊含义的情况下。 但是, 对于非数字字母的字符,总是在需要其进行原文匹配的时候在它前面增加一个反斜线, 来声明它代表自己,这是安全的。如果要匹配一个反斜线,那么在模式中使用 ”\\”。

    例如,我要写小数点"." ,但是点是 元字符 (有特殊涵义的编码字符),如果要表示小数点,不让它代表特殊含义,就需要转义: "\." 或 [\.]

    $lng = 125.97097735211630;

    $pattern = "#^(0|[1-9][0-9]*)[\.][0-9]{14}$#";

    //满足14位小数位的数字

    preg_match($pattern, $lng)

    表达式中的反斜杠

    表达式中的反斜杠有多重意义,如转义、指定预定义的字符集、定义断言、显示不打印的字符。

    转义字符

    转义字符主要是将一些特殊字符转为普通字符。而这些常用特殊字符有”.”,”?”、”\”等。

    指定预定义的字符集

    正则表达式-1.jpg

    ###显示不可打印的字符

    正则表达式-2.jpg

    以上内容仅供参考!

    推荐视频教程:PHP视频教程

    以上就是php正则表达式怎么写的详细内容,更多请关注php中文网其它相关文章!

    phpstudy集成环境下载
    本文原创发布php中文网,转载请注明出处,感谢您的尊重!
    专题推荐:php 正则表达式
    上一篇:php怎样禁止用户直接访问文件 下一篇:php中session和post的区别

    相关文章推荐

    • 详解正则表达式• 正则表达式语法教程(含在线测试工具)• 正则表达式详细基础实例解析• php正则表达式有什么用

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网