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

    正则表达式

    什么是正则表达式

    ​ 一套规则 - 匹配字符串的

    能做什么

    ​ 1.检测一个输入的字符串是否合法 -- web开发项目 表单验证
    ​ 用户输入一个内容的时候,我们要提前做检测
    ​ 能够提高程序的效率并且减轻服务器的压力
    ​ 2.从一个大文件中找到所有符合规则的内容 -- 日志分析爬虫
    ​ 能够高效的从一大段文字中快速找到符合规则的内容

    字符组

    描述的是一个位置上能出现的所有可能性

    ​ 接受范围,可以描述多个范围,连着写就可以了

        [abc]   一个中括号只表示一个字符位置
        匹配a或者b或者c
        [0-9]   0到9中任意一个数字
        [a-z]   a到z中任意一个字母
        [A-Z]   A到Z中任意一个字母    
        [a-zA-Z] 表示任意一个大小写字母
        [0-9a-z] 表示任意一个0-9的数字或任意一个小写字母
    

    在正则表达式中能够帮助我们表示匹配的内容的符号都是正则中的 元字符

    元字符 -- 匹配内容的规则

    []元字符

    [^] 非的任意一个

    d 表示匹配一位任意数字 digit

    w 表示匹配一位任意数字字母下划线 word

    s 表示所有空白,包括空格tab和回车

    表示匹配一个TAB

    表示匹配一个换行

    W 非数字字母下划线

    D 非数字

    S 非空白

    [d]d] [dD] [wW] [sS] 表示匹配所有

    . 匹配除了换行符之外的所有

    [^d] 匹配所有的非数字

    ^ 在[]外,表示匹配一个字符串的开始

    $ 匹配一个字符串的结尾

    a表达式|b表达式 匹配a或者b表达式中的内容,如果匹配a成功了,不会继续和b匹配. 所以,如果两个规则有重叠部分,总是把长的放在前面
    () # 约束 | 描述的内容的范围问题

    记忆元字符:

    记忆元字符 : 都是表示能匹配哪些内容,一个元字符总是表示一个字符位置上的内容
    d w s 	 
     D W S
    [] [^] .
    ^ $
    | ()
    

    记忆量词:

    {n}  表示匹配n次
    {n,} 表示匹配至少n次
    {n,m}表示至少匹配n次,至多m次
    ? 表示匹配0次或1次 {0,1}
    + 表示1次或多次    {1,}
    * 表示0次或多次    {0,}
    (数轴:? 0到1;+ 1到无穷;* 0到无穷)
    
        整数 d+
        小数 d+.d+
        
        整数或小数 : d+.?d*
        分组的作用 : d+(.d+)?
    

    贪婪匹配

    在量词范围允许的情况下,尽量多的匹配内容
    .*x  表示匹配任意字符 任意多次数 遇到最后一个x才停下来
    

    非贪婪(惰性)匹配

    .*?x  表示匹配任意字符 任意多次数 但是一旦遇到x就停下来
    

    转义符

    原本有特殊意义的字符,到了表达它本身的意义的时候,需要转义
    有一些有特殊意义的内容,放在字符组中,会取消它的特殊意义
    . 有特殊的意义,取消特殊的意义.
     取消一个元字符的特殊意义有两种方法
            1.在这个元字符前面加
            2.对一部分字符生效,把这个元字符放在字符组里
    [().*+?] 所有的内容在字符组中会取消它的特殊意义
    [a-c]  -在字符组中表示范围,如果不希望它表示范围,需要转义,或者放在字符组的最前面或最后面
    
  • 相关阅读:
    Struts2的%,#,$的区别,UI标签及其表单radio,checkbox,select回显数据(七)
    Struts2的控制标签库和数据标签库(六)
    Struts2从后端向前端传递数据和OGNL访问用户自定义静态方法(五)
    两个小例子登录和显示全部用户信息的模块(四)
    Struts2的ServletAPI的获取和各种类型的数据获取(三)
    Action的三种实现方式,struts.xml配置的详细解释及其简单执行过程(二)
    Struts2的 两个蝴蝶飞,你好 (一)
    虚拟机安装Centos7系统后优化操作
    Java进程故障排查(CPU资源占用高,接口响应超时,功能接口停滞等)
    zabbix企业微信报警实现
  • 原文地址:https://www.cnblogs.com/wyh0717/p/13038830.html
Copyright © 2011-2022 走看看