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

    一 .正则表达式:也叫规则表达式,按照一定的规则组成的一个表达式,这个表达式的作用主要是匹配字符串
    二 .正则表达式的作用:匹配字符串的
    常用于:
    1.验证表达数据: 邮箱验证,邮政编码,手机号,身份证号等
    2.数据过滤:mysql注入,抓数据
    三 .正则表达式的组成:是由元字符或限定符组成的一个式子。
    四 .正则表达式的声明:
    1)标准声明:
    var Reg= new RegExp(/规则字符串/);
    2)简单的:
    var Reg= /规则字符串 匹配模式/ ;
    五 .语法规则:
    <1>:元字符
    1. . (点)表示的是:除了 以外的任意的一个字符
    2. [] 表示的是:范围
    例如:[0-9] 0到9 任意的一个数字 “789” 也可以用[0-9]表示
    注意:[100-200]的表达式是错误的,应该这样表示:[1][0-9][0-9]
                  [a-z] 表示的是:所有的小写的字母中的任意一个
    [A-Z] 表示的是:所有的大写的字母中的任意一个
    [a-zA-Z] 表示的是:所有的字母中的任意一个
    [0-9a-zA-Z] 表示的是:所有的数字或者是字母中的任意一个
    [] 另一个含义:把正则表达是中元字符的意义干掉 [.] 意味者就是一个 .(点)
    3. * 表示的是: 前面的表达式出现了0次到多次(是前面紧挨着的表达式)
    例如:[a-z][0-9]* 表示:小写字母中的任意一个,后面有0个或者多个数字

          4.     +    表示的是: 前面的表达式出现了一次到多次 (是前面紧挨着的表达式)

                 例如: [a-z][9]+ 表示是:任意一个小写字母后面最少有一个9,或者多个9

                 

     5.  ?  表示的是:  前面的表达式出现了0次到1次,最少是0次,最多是1次(是紧挨着的表达式)

    <2>限定符
    限定符: 限定前面的表达式出现的次数
    * 1, {}更加的明确前面的表达式出现的次数
    * {0,} 表示的是:前面的表达式出现了0次到多次,和 *一样的
    * {1,} 表示的是:前面的表达式出现了1次到多次,和 + 一样的
    * {0,1} 表示的是:前面的表达式出现了0次到1次,和 ?一样的
    * {4} 前面的表达式出现4次
    * 综上所诉:
    * {n,} 表示的是前面的表达式出现了n次到多次
    * ❤❤❤❤❤❤❤但是注意❤❤❤❤❤❤❤❤❤❤❤❤❤❤:
    * {,10} 错误的---------------》不能这么写
    *
    * 2, ^ 表示的是:以什么开始,或者是取非(取反)
    * 例如 ^[0-9] 表示的是: 以数字开头
    * ^[a-z] 表示的是: 以小写字母开头
    * [^0-9] 表示的是: 取反,非数字
    * [^a-z] 表示的是: 取反,非小写字母
    * [^0-9a-zA-Z_] 表示的是: 取反,特殊符号(注意:下划线不算是特殊符号)
    * 总结; 把符号^ 放在[]外面就是 以什么开头的意思,放在括号里面就是 取反的意思
    *
    * 3, $ 表示的是以什么结束
    * 例如: [0-9][a-z]$ 表示的是 必须以小写字母结束
    *
    * ^[0-9][a-z]$ 相当于严格模式 与"4f"匹配
    * [0-9][a-z] 与"099874fkl"匹配
    *
    *
    * d 表示的是: 数字中的任意一个
    * D 表示的是: 非数字中的一个(字母或特殊符号)
    * s 表示的是: 空白符中的一个
    * S 表示的是: 非空白符
    * w 表示的是: 非特殊符号(匹配一个单字字符(字母,数字,或者下划线) 等价于[A-Za-z0-9])
    * W 表示的是:特殊符号
    *  表示的是:单词的边界
    * 例如:"what is it"

    六 .正则表达式常用的方法:
    1. .test(字符串) 在字符串中测试是否含有正则表达式,不管是要整个字符串还是单个字符,只要匹配,就返回true,否则false。
      2.   .match() 
    字符串.match(/
    正则表达式/)
    查找出所有字符串中含有正则表达式的第一个子串
    查找出所有字符串中含有正则表达式的所有子串 (后面带一个g)----
    字符串.match(/正则表达式/g)
    3. .search()
    字符串.search(/正则/)
    返回 字符与正则表达式匹配第一个字符串的位置,如果没有,就返回-1
    4. split()
    字符串.split(/正则/)
    字符串按照正则表达式所指代的字符串进行分解
    注意:/ /这代表空格
    5. replace()
    字符串.replace(/正则/,“新的串”)
    查找出字符串中与正则表达式相匹配的子串,用新子串,替换掉。
    6. exec()
    正则表达式.exec(str)
    字符串查询与正则表达式相匹配的子串,每一次只能查找一个子串,返回的是只有一个子串的数组
    正则表达式要用g全局模式匹配







  • 相关阅读:
    ASP.NET MVC 学习: 视图
    翻译:ASP.NET MVC Example Application over Northwind with Entity Framework
    主流web2.0网站的配色参考方案
    jQuery1.2选择器
    ASP.NET MVC URL Routing 学习
    [转]关于DOM元素定位属性的深入学习
    ASP.NET MVC : Action过滤器(Filtering)
    【翻译】使用ASP.NET MVC 和LINQ建立一个简单的博客 Part 3
    Windows 8开发者训练营第一日来自现场的图片报道
    从数据到信息到决策
  • 原文地址:https://www.cnblogs.com/hou-yuan-zhen/p/11589514.html
Copyright © 2011-2022 走看看