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

    正则表达式是用来验证数据的,验证数据非常简单,但是执行效率不高,通过一些元字符(具有特殊含义的字符)去验证数据

    (一)       定义字符集

    [a-e]                   随意匹配a到e连续字符中的某一个字符

    [aeiou]                随意匹配aeiou这5个零散字符中的某一个字符

    [a-z]                   随意匹配26个小写英文字母之一

    [A-Z]                 随意匹配26个大写英文字母之一

    [a-zA-Z]             随意匹配一个大写 或 小写英文字母

    [0-9]               随意匹配0到9之间任意一个数字

    [a-zA-Z0-9]       随意匹配一个大小写英文字母或数字

    [a-zA-Z0-9_-]    随意匹配一个大小写英文字母或数字或_下划线或-中横线之一

    [5-7]              随意匹配5到7连续数字的一个数字

    注意:

    匹配数字、英文字母的一段  ,段的开始到结尾必须由小到大设置

    像[7-2]、[h-c]等等都是错误的语法

    (二)        特别字符集

    $           匹配目标字符串的”结尾”位置。

    ^          “托字符”匹配目标字符串的”开始”位置

                  ^的作用:

    ①    $pat = “/^hello/”;  /hello需要在目标内容开始出现

    ②    $pat = “/[^0-9]/”匹配非0到9之间数字以外的其他字符内容

    ( )          标记一个子表达式的”开始”和”结束”位置

                  小括号( )作用:

                                       ① 提高子表达式优先级

    ② 可以从大的字符串拆分小的内容出来

    *           表示其前面那个单元出现0次或以上 任意次数

    .            匹配除换行符 之外的任何单字符, 例如 .* 表示匹配任何内容

    +          表示其前面那个单元出现1次或以上 任意次数

    ?           表示其前面那个单元出现0次或1次  要么出现、要么不出现

               这个符号是用来转义的,去除符号的特殊意思,只保留符号的本质意思

    |            指明两项之间只选择一个,或 的意思

    (三)        组合字符集

    d          表示匹配0到9之间的一个数字  是[0-9]的别名

    [1-9]  匹配一个非0数字

    [5-9]  匹配5到9之间的一个数字

    w          表示匹配(大小写)字母、数字、下划线其中的一个[a-zA-Z0-9_]

    s           表示空格

                        //匹配hello 和 beijing中间有三个空格

    $pat = “/hello   beijing/”;  //可读性不好

    $pat = “/hellosssbeijing/”;  //可读性好

    (四)        限制字符

    {m}        其前一单元严格出现m次

    {m,}       其前一单元出现至少m次,至多不限制

    {m,n}     其前一单元出现至少m,至多n次,n比m要大

    (五)        模式修正符

    正则完全的设置: $pat = “/正则内容/模式修正符”;

    I : 忽略大小写

    U :就近匹配,避免贪婪匹配!

    (六)       单次 / 全局匹配

    preg_match()

    可以通过正则对目标字符串进行“单次”匹配

    preg_match_all

    (正则,内容,匹配结果)函数

    该函数返回二维数组

    可以实现对内容的全局匹配,所有与模式符合的内容都给匹配出来

           例:

                         // 单次匹配

                         $pat = "/d/";

                         $str = "2016-12-14 19:21:55";

                         preg_match($pat,$str,$out);                      // array(1) { [0]=> string(1) "2" }

                         // 全局匹配

                         preg_match_assll($pat,$str,$out);

                         var_dump($out);

    (七)       常用验证

    // 邮箱验证

    $pat  = "/`[a-z1-9][a-z0-9.]{5,}@(d+|[a-z]+)(.[a-z]+)+$/i";

    $pat =“/w+([.-]?w+)?@w+.(com|cn|net|org)/”;

    // 手机号验证

    $pat = "/1[3578]d{9}$/";

  • 相关阅读:
    代码:城市名称的联想下拉框。可按拼音搜索、按汉字搜索,是一种很简单的实现方式
    代码:拖拽
    插件:zTree
    代码:遍历
    学习笔记:Stage.js(又叫Cut.js)——2D canvas 开发库,游戏方面的
    前端模块化、构建工具
    二级联动下拉菜单
    thinkphp的目录结构设计经验总结
    tp 路径表示
    liunx 根目录介绍
  • 原文地址:https://www.cnblogs.com/zwtqf/p/6188860.html
Copyright © 2011-2022 走看看