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

    一、什么是正则表达式

      正则表达式(Regular Expression):强大的文本处理工具。
            模式匹配和替换的强大工具。

      linux中主要通过 grep 来发挥正则表达式(以行为单位)的强大功能!

      注意,这里的*等表示的是量词单位,不是之前提到的通配符,在正则表达式里请不要与通配符混淆!

    二、正则表达式入门

      两部分组成:
        1.原义文本字符
        2.元字符

      []  一类,即符合一个都行 [abc] 符合一个都行
      [^] 负向类,即取反 [^abc] a b c 以外的都行
      [a-z] 范围类,是一个闭区间,支持连写 [a-zA-Z] 所有大小写字符,想匹配的比如本身就有-等
        就直接在后面加- [0-9-]

      g 全局查找 i 忽略大小写 m 多行处理
      预定义类:
        . 回车换行之后的所有字符
        \d 数字字符0-9
        \D 非数字字符
        \s 空白符 space
        \S 非空白符
        \w 数字字符下划线 word
        \W 非数字字符下划线

      边界
        \b 单词边界(bound)
        \B 非单词边界
        ^ 以xxx开始
        $ 以xxx结束

      量词
        ? 0次或者1次
        + 1次或者多次
        * 任意次
        {n} 出现了n次
        {n,} 至少出现了n次
        {n,m} n次到m次

      贪婪模式:123456 \d{3,6} 会匹配6次,尽可能多地匹配 默认模式
      非贪婪模式:\d{3,6}? 非贪婪模式,匹配3次就不匹配了

      分组:Byron{3} 默认匹配n字符,采用分组匹配整个单词 (Byron){3}

      或 | 使用分组限制或的范围,不然默认整个正则表达式左右两个部分或 Byr(on|Ca)rry

      反向引用 $1 $2 $n等表示第n个分组的内容,(其它语言大同小异 如\1表示分组1的文本)

      忽略分组,在分组前加?: (?: Byron)

      前瞻:正则表达式在匹配时向前检查是否符合断言
      正向前瞻 exp(?=assert) exp 与assert都是正则表达式,断言部分不匹配,只是作为断言
      负向的 exp(?!assert)
      后顾相反

       完整正则表达式字符,参考http://tool.oschina.net/uploads/apidocs/jquery/regexp.html

      常用正则表达式:

        http://blog.csdn.net/onebigday/article/details/5429868/

      正则表达式在线测试工具:

        http://tool.oschina.net/regex

  • 相关阅读:
    Shell变量
    Shell执行脚本
    C++类的默认成员函数
    C# CAD 二次开发(二) -集成开发环境VS2012+CAD2016
    C# CAD 二次开发(一) -前期搜集资料篇
    WPF 学习笔记(十二)
    WPF 学习笔记(十一)
    WPF 学习笔记(十)
    WPF 学习笔记(九)
    WPF 学习笔记(八)
  • 原文地址:https://www.cnblogs.com/zhuangwei1015/p/10009934.html
Copyright © 2011-2022 走看看