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}$/";

  • 相关阅读:
    在IE和Firfox获取keycode
    using global variable in android extends application
    using Broadcast Receivers to listen outgoing call in android note
    help me!virtual keyboard issue
    using iscroll.js and iscroll jquery plugin in android webview to scroll div and ajax load data.
    javascript:jquery.history.js使用方法
    【CSS核心概念】弹性盒子布局
    【Canvas学习笔记】基础篇(二)
    【JS核心概念】数据类型以及判断方法
    【问题记录】ElementUI上传组件使用beforeupload钩子校验失败时的问题处理
  • 原文地址:https://www.cnblogs.com/zwtqf/p/6188860.html
Copyright © 2011-2022 走看看