博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第一章
阅读量:5069 次
发布时间:2019-06-12

本文共 736 字,大约阅读时间需要 2 分钟。

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.量词"?*+"都是尽可能多的匹配。
 
 
 
 

转载于:https://www.cnblogs.com/manziluo/p/5788250.html

你可能感兴趣的文章
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
输入月份和日期,得出是今年第几天
查看>>
pig自定义UDF
查看>>
spring security 11种过滤器介绍
查看>>
代码实现导航栏分割线
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
【AS3代码】播放FLV视频流的三步骤!
查看>>
枚举的使用
查看>>
luogu4849 寻找宝藏 (cdq分治+dp)
查看>>
日志框架--(一)基础篇
查看>>
关于源程序到可运行程序的过程
查看>>
转载:mysql数据库密码忘记找回方法
查看>>
scratch少儿编程第一季——06、人在江湖混,没有背景怎么行。
查看>>
C# Async与Await的使用
查看>>
Mysql性能调优
查看>>
iOS基础-UIKit框架-多控制器管理-实例:qq界面框架
查看>>
自定义tabbar(纯代码)
查看>>
小程序底部导航栏
查看>>
poj1611 简单并查集
查看>>