描述:(grep)

正则表达式是一种字符模式,用于在查找过程中匹配指定的字符。在大多数程序里,正则表达式都被置于两个正斜杠之间,它匹配被查找的行中任何位置出现的相同模式

基础正则表达式

正则表达式 描述       
\ 转义字符,将特殊字符进行转义,忽略其特殊意义
^ 匹配行首,awk中,^是匹配字符串的开始
$ 匹配行尾,awk中,$是匹配字符串的结尾
^$ 表示空行
. 匹配除换行符\n之外的任意一个字符
[ ] 匹配包含在[字符]之中的任意单个字符
[^ ] 匹配[^字符]之外的任意一个字符
[ - ] 匹配 [ ] 指定范围内的任意一个字符
? 匹配之前的项目1次或者0次
+ 匹配之前的项1次或多次
* 匹配之前的项0次或多次,.*
( ) 匹配表达式,创建一个用于匹配的子串
{ n } 匹配之前的项至少需要匹配n次
{n,} 之前的项至少需要匹配n次
{n,m} 指定之前的项至少匹配n次,最多匹配m次,n<=m
|

交替匹配 | 两边的任意一项ab(c|d)匹配abc 或 abd

特定字符:

>[[:space:]]   空格

[[:digit:]]  [0-9]

[[:lower:]]  [a-z]

[[:upper:]]  [A-Z]

[[:alpha:]]  [a-Z]

正则表达式练习

[root@web02 ]# cat test.txt (练习文本)
I am timfly student!
I learn linux is very happy.
test I like badminton ball ,billiard ball and chinese chess!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com
my qq num is .
not .

命令:

#过滤率以m开头,以m结尾的行
[root@web02 ]# grep "^m" test.txt
my blog is http://timfly.blog.51cto.com
my qq num is .
[root@web02 ]# grep "m$" test.txt
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com #排除空行,并打印行号
[root@web02 ]# grep -vn "^$" test.txt
:I am timfly student!
:I learn linux is very happy.
:test
:I like badminton ball ,billiard ball and chinese chess!
:my blog is http://timfly.blog.51cto.com
:our site is http://www.timfly123.com
:my qq num is .
:not . #匹配任意一个字符,但不包括空行
[root@web02 ]# grep "." test.txt
I am timfly student!
I learn linux is very happy.
test
I like badminton ball ,billiard ball and chinese chess!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com
my qq num is .
not #匹配所有
[root@web02 ]# grep "." test.txt
I am timfly student!
I learn linux is very happy.
test
I like badminton ball ,billiard ball and chinese chess!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com
my qq num is .
not #匹配单个任意字符
[root@web02 ]# grep "tim.ly" test.txt
I am timfly student!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com #匹配以.结尾的
[root@web02 ]# grep "\.$" test.txt
I learn linux is very happy.
my qq num is .
not . #精确匹配到
[root@web02 ]# grep -o "8*" test.txt [root@web02 ]# grep -o "tim*" test.txt
tim
tim
tim #匹配有abc的行,数字所在的行,所有小写字母
[root@web02 ]# grep "[abc]" test.txt
I am timfly student!
I learn linux is very happy.
I like badminton ball ,billiard ball and chinese chess!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com [root@web02 ]# grep "[0-9]" test.txt
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com
my qq num is .
not . [root@web02 ]# grep "[a-z]" test.txt
I am timfly student!
I learn linux is very happy.
test
I like badminton ball ,billiard ball and chinese chess!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com
my qq num is .
not . [root@web02 ]# grep "[a-z]" test.txt
I am timfly student!
I learn linux is very happy.
test
I like badminton ball ,billiard ball and chinese chess!
my blog is http://timfly.blog.51cto.com
our site is http://www.timfly123.com
my qq num is .
not . #重复8三次
[root@web02 ]# grep "8\{3\}" test.txt ##带转义字符
not .
[root@web02 ]# grep "8{3}" test.txt     ##不带转义字符也没有正则
[root@web02 ]# egrep "8{3}" test.txt     ##正则匹配
not .
[root@web02 ]# grep -E "8{3}" test.txt     ##加-E 参数
not . #重复数字8,-5次
[root@web02 ]# egrep "8{3,5}" test.txt
not . #重复8一次或以上
[root@web02 ]# grep -E "8{1,}" test.txt
not .

正则表达式基础->的更多相关文章

  1. .NET正则表达式基础入门

    这是我第一次写的博客,个人觉得十分不容易.以前看别人写的博客文字十分流畅,到自己来写却发现十分困难,还是感谢那些为技术而奉献自己力量的人吧. 本教程编写之前,博主阅读了<正则指引>这本入门 ...

  2. 正则表达式基础---转自 Python正则表达式指南 前边

    1. 正则表达式基础 1.1. 简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十 ...

  3. bash shell学习-正则表达式基础 (笔记)

    A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...

  4. python正则表达式基础篇

    1.正则表达式基础 1.1简单介绍 正则表达式并不是Python的一部分.正则表达式是用于处理字符串的强大工具,拥有自己独特的语法以及一个独立的处理引擎,效率上可能不如str自带的方法,但功能十分强大 ...

  5. (大数据工程师学习路径)第一步 Linux 基础入门----正则表达式基础

    介绍 虽然我们这一节的标题是正则表达式,但实际这一节只是介绍grep,sed,awk这三个命令,而正则表达式作为这三个命令的一种使用方式(命令输出中可以包含正则表达式).正则表达式本身的内容很多,要把 ...

  6. 前端学PHP之正则表达式基础语法

    前面的话 正则表达式是用于描述字符排列和匹配模式的一种语法规则.它主要用于字符串的模式分割.匹配.查找及替换操作.在PHP中,正则表达式一般是由正规字符和一些特殊字符(类似于通配符)联合构成的一个文本 ...

  7. python正则表达式基础,以及pattern.match(),re.match(),pattern.search(),re.search()方法的使用和区别

    正则表达式(regular expression)是一个特殊的字符序列,描述了一种字符串匹配的模式,可以用来检查一个字符串是否含有某种子字符串. 将匹配的子字符串替换或者从某个字符串中取出符合某个条件 ...

  8. Linux学习(2)- 正则表达式基础

    Linux学习(2)- 正则表达式基础 一.基础正则表达式介绍与练习 学习内容 正则表达式特殊符号 [:alnum:]代表英文大小写字母及数字 [:alpha:]代表英文大小写字母 [:blank:] ...

  9. javascript之正则表达式基础知识小结

    javascript之正则表达式基础知识小结,对于学习正则表达式的朋友是个不错的基础入门资料.   元字符 ^ $ . * + ? = ! : | \ / ( ) [ ] { } 在使用这些符号时需要 ...

  10. Python正则表达式-基础

    Python正则表达式-基础 本文转载自昔日暖阳,原文地址:http://www.osheep.cn/4806.html python使用正则,需要先引入re模块 import re 匹配符 单个字符 ...

随机推荐

  1. word2010激活工具使用方法

    1.关闭杀毒,关闭正打开着的word文档 2.执行Activator_v1.2.exe-->Activation Office 2010VL -->按1 -->完毕. 3.打开wor ...

  2. [BZOJ3065]带插入区间K小值 解题报告 替罪羊树+值域线段树

    刚了一天的题终于切掉了,数据结构题的代码真**难调,这是我做过的第一道树套树题,做完后感觉对树套树都有阴影了......下面写一下做题记录. Portal Gun:[BZOJ3065]带插入区间k小值 ...

  3. 团体程序设计天梯赛 L3-012. 水果忍者

    /*对于一条满足条件的直线,向下移,直到触碰一条线段的下端点,仍然经过其它线段,该直线仍然满足条件 即以一条线段的下(上)端点作为直线上的一点,求为了经过一条线段的最小.最大斜率值(mink,maxk ...

  4. Rstdio快捷键总结

    Rstdio常用快捷键总结 在R语言里面输入了一个不完整的指令以后 左下方的console pane一直有加号+,不管输入什么都是加号,只用推出重新打开Rstudio才行,后来google了下,按左上 ...

  5. HDU 6006 状压dp

    Engineer Assignment Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Othe ...

  6. linux(ubuntu) 常用指令

    1.新建文件夹 mkdir mkdir test 2.进入文件夹 cd cd test 3.创建/修改文件 vim vim a.txt 如果不存在a.txt,就会新增a.txt; 如果存在,则修改 先 ...

  7. P4514 上帝造题的七分钟

    P4514 上帝造题的七分钟 题意: 二维区间修改 区间查询 --- 错误日志: 写了个 4 重循环忘记调用 \(i\) Solution 二维树状数组 巨尼玛毒瘤 听说二维线段树会 \(MLE\) ...

  8. windows下用wubi快速安装ubuntu

    由于开发需要,我们可能要用到ubuntu,然而又不能完全抛弃windows,于是双系统是个不错选择. wubi是一个在windows下快速安装ubuntu双系统的工具,它包含在ubuntu 12及以前 ...

  9. CentOS安装Confluence Wiki步骤

    参考:http://supernetwork.blog.51cto.com/2304163/1187066 参考:http://yjiang.tk/?p=1085   需要的文件 CentOS-6.5 ...

  10. 【转】(总结)Nginx配置文件nginx.conf中文详解

    本文转载自:http://www.ha97.com/5194.html 定义Nginx运行的用户和用户组 user www www; nginx进程数,建议设置为等于CPU总核心数 worker_pr ...