zoukankan      html  css  js  c++  java
  • 第一章

    1.正则表达式只认识行和字符,所以平时考虑问题要从这个角度来考虑。比如 “^cat" ,理解为”以cat开始的行“和理解为”匹配行头字符为'c'然后跟着'a'然后跟着‘c'“从效果上看是一样的,但是后者更容易指出代码的实现方式,以及为性能优化提供参考。

     
    2.正则表达式由元字符文字两部分组成,其中是否为元字符需要结合上下文来看。比如"c*aa”和“c[*]”中前者'*'表示元字符,但后者不是。
     
    3.正则表达式又很多小模块构成,这些小模块可以有很多组合,以满足我们的需求。
     
    4."[....]"字符组,理解为从多个元素中匹配一个。要点
    1. 匹配一个字符且必须匹配一个字符。例如"a[bq]",如果出现行"aq"就能匹配,但是出现行”a"就不能匹配了。  
    2. 排除型字符组[^...]匹配未列出的一个元素
    3. 字符组里面的元字符只有这里位于'['之后的'^',还有有引导的'-'才是元字符,其他的都不是,就是说[*.?]等都不是
    5.'.'匹配一个非换行符的任意字符
     
    6.了解需要处理的文件很重要,可以简化和优化正则表达式。
     
    7.匹配任意子表达式'(expr1|expr2|expr3)',如果没有'()'则没有限定边界,在vim里面'()'需要使用转义字符。没有排除功能
     
    8.单词分界符号'<''>'相当于行开始与结束。正则表达式不认识单词,这里只不过匹配字母和数字的开始和结束位置。
     
    9.'x?',表示“这里允许出现一个x”,这个肯定是能匹配成功的。其中'x'不只是一个字符,还可以是子表达式,当为子表达式需要用'()'界定
     
    10.量词"?*+"都是尽可能多的匹配。
     
     
     
     
  • 相关阅读:
    深度学习方面的学术交流平台?
    如何用简单例子讲解 Q
    强化学习之Q-learning简介
    学完了在线课程?如何开启深度学习论文的阅读模式
    Java高级特性之枚举
    uboot启动流程
    Chromium网页Layer Tree创建过程分析
    Sql控制反转小尝试
    模拟日历计算 poj1008
    安卓零碎知识集中
  • 原文地址:https://www.cnblogs.com/manziluo/p/5788250.html
Copyright © 2011-2022 走看看