描述:(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. MT【152】不患寡而患不均

    ((清华2017.4.29标准学术能力测试1) $a_1,a_2,\cdots,a_9$ 是数字$1$到$9$ 的一个排列,则 $a_1a_2a_3+a_4a_5a_6+a_7a_8a_9$ 的最小值 ...

  2. Java应用中使用ShutdownHook友好地清理现场

    在线上Java程序中经常遇到进程程挂掉,一些状态没有正确的保存下来,这时候就需要在JVM关掉的时候执行一些清理现场的代码.Java中得ShutdownHook提供了比较好的方案. JDK在1.3之后提 ...

  3. JUnit中按照顺序执行测试方式

    很多情况下,写了一堆的test case,希望某一些test case必须在某个test case之后执行.比如,测试某一个Dao代码,希望添加的case在最前面,然后是修改或者查询,最后才是删除,以 ...

  4. docker attach 和 docker exec

    docker attach docker attach -- Attach to a running container. 常用选项: --sig-proxy=true:Proxy all recei ...

  5. Android O 正式版新功能

    ref: Android O新特性和行为变更总结zzhttp://www.cnblogs.com/bluestorm/p/7148134.html Android O正式版带来了诸多新功能,如Tens ...

  6. 解题:NOI 1999 生日蛋糕

    题面 裸的搜索题,就说剪枝(注:nw->noww->当前,res->rest->剩余): 1.想达到$Nπ$的体积,那么半径一开始最多也就$sqrt(n)$了,再大就超了... ...

  7. 搭建web.py

    输入以下命令:盘符切换:   >>d: >>D:\LYFLYFLYF\python\web.py-0.37 >>python setup.py install 出现 ...

  8. 一次ajax请求导致status为canceled的原因小记

    偶然碰到一个小Bug ajax请求执行后返回了一个canceled(状态码) 但是后台却接受了参数并且执行成功0.0 刚看到这个状态的时候是一脸懵逼的.... 之前并没见过这样的状态码 经过参数确认并 ...

  9. django 线上教育平台开发记录

    1.环境搭建 2.新建项目 1).首先通过 django-admin 新建一个项目,(例如项目名为mxonline) django-admin startproject mxonline 运行后会出现 ...

  10. Docker应用四:搭建docker镜像仓库(包括自生成https证书、登陆认证)

    利用docker官网提供的registry镜像创建私有仓库 一.首先从docker官网拉取registry镜像: docker pull registry 二.然后运行该镜像: docker run ...