首页 > 其他 > 详细

正则表达式之我初见

时间:2014-02-23 14:42:54      阅读:363      评论:0      收藏:0      [点我收藏+]

1,什么是正则表达式?

  简单来说就是用正则表达式语言创建的,快速进行文本内容的匹配查找特定字符串或替换工作,对文本操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑。

2,正则表达式的应用场景?

  用来进行文本特殊内容的查找,并进行替换,适合文本文件查找替换的内容量比较大且有相同规则的字符串

3,给定一个正则表达式和另一个字符串,我们可以达到如下的目的:

     a. 给定的字符串是否符合正则表达式的过滤逻辑(称作“匹配”);

     b. 可以通过正则表达式,从字符串中获取我们想要的特定部分。

4,正则表达式的特点是:

     a. 灵活性、逻辑性和功能性非常的强;

     b. 可以迅速地用极简单的方式达到字符串的复杂控制。

     c. 对于刚接触的人来说,比较晦涩难懂。

文本处理工具 grep egrep fgrep


grep global search regular expression=\‘#\‘" ) and print out the line

文本搜索工具,根据用户指定的文本模式对目标文件进行逐行搜索,显示能够被模式匹配到的行


grep [options] ‘pattern‘  file......


--color=auto


正则表达式:是一类字符所书写出的模式(pattern)

元字符:不表示字符本身的意义,用于额外功能性的描述

基本正则表达式

grep -E 使用扩展正则表达式

字符匹配

。:任意单个字符


[]:指定范围内的任意单个字符


[^]:指定范围外的任意单个字符


次数匹配:用来指定匹配其前面的字符的次数

*:任意次

例子:x*y,xxy,xy,y

.*:匹配任意长度的任意字符

\?:0次或1次

x\?y,xy ,y,xxy

贪婪模式:尽可能的长的去匹配字符



\{m\}:匹配m次

\{m,n\}:m次到n次

\{m,\}:至少m次

\{0,n\}:至多n次


位置锚定:用于指定字符出现的位置

^:锚定行首

^Char

cgrep ‘^[Tt][^[:punct:]].*[Rr]‘ passwd

$锚定行尾

Char$

cgrep ‘bash$‘ passwd


^$:空白行

查找空行 cgrep ‘^$‘ profile

^hello$=hello


\<char:锚定词首,\bchar

cgrep ‘<\[Tt][^[:punct:]].*[Rr]‘ passwd


char\>:锚定词尾  char\b

\<a.bbb\>


分组:\(\)

\(ab\)*xy


引用:

\1:后向引用,引用前面的第一个左括号以及与之对应的右括号中的模式所匹配的内容

\2

\(a.b\)xy\1  a6bxya6b


cgrep ‘[Tt].*[Rr]‘ passwd

cgrep ‘[Tt][^[:punct:]].*[Rr]‘ passwd

grep 常用选项

-v 反向匹配 不显示空行  grep -v "^$"  profile

-o 仅显示匹配到的字符串,不是整行

-i 不区分字符大小写

-E 支持扩展的正则表达式

-A #:after 匹配到行和下#行

-B #: before 匹配到行和上#行

-C #: context上下文 匹配到行和上下#行


正则表达式之我初见

原文:http://onlywyn.blog.51cto.com/204565/1362192

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!