grep正则表达式?Linux正则表达式教程:Grep Regex示例
大家好,今天小编来为大家解答grep正则表达式这个问题,Linux正则表达式教程:Grep Regex示例很多人还不知道,现在让我们一起来看看吧!
Linux正则表达式教程:Grep Regex示例
正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式。正则表达式缩写为“regexp”或“regex”。
为了便于理解,让我们逐一学习不同类型的正则表达式。
[TOC]
一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。
我们来看一个例子吧。
执行cat示例以查看现有文件的内容
搜索包含字母'a'的内容。
' ^'匹配字符串的开头。让我们搜索一下STARTS的内容
仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。
让我们看看另一个例子-
仅选择那些以$结尾的行
这些表达式告诉我们字符串中字符的出现次数。他们是
例:
过滤掉包含字符'p'的所有行
我们想要检查字符'p'是否在字符串中依次出现2次。为此,语法将是:
注意:您需要使用这些正则表达式添加-E。
这些正则表达式包含多个表达式的组合。他们之中有一些是:
例:
搜索所有字符't'
假设我们要过滤字符'a'在字符't'之前的行
我们可以使用命令
大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表。序列中的起始和结束项由两个句点“..”分隔。
一些例子:
在上面的示例中,echo命令使用大括号扩展创建字符串。
正则表达式^[\w_]*$/ 代表什么意思
首先看\w表示匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。然后跟了个_,在看*号:匹配前面的子表达式零次或多次。例如,zo*能匹配"z"以及"zoo"。*等价于{0,}。
这个表达式的意思就是把这个[\w_](任何单词字符包括下划线,然后跟个下划线)看为一个整体出现零次或多次。
正则表达式,又称规则表达式。(英语:Regular Expression,在代码中常简写为regex、regexp或RE),计算机科学的一个概念。正则表达式通常被用来检索、替换那些符合某个模式(规则)的文本。
许多程序设计语言都支持利用正则表达式进行字符串操作。例如,在Perl中就内建了一个功能强大的正则表达式引擎。正则表达式这个概念最初是由Unix中的工具软件(例如sed和grep)普及开的。正则表达式通常缩写成“regex”,单数有regexp、regex,复数有regexps、regexes、regexen。
扩展资料:
正则表达式的特点是:
1.灵活性、逻辑性和功能性非常强;
2.可以迅速地用极简单的方式达到字符串的复杂控制。
3.对于刚接触的人来说,比较晦涩难懂。
由于正则表达式主要应用对象是文本,因此它在各种文本编辑器场合都有应用,小到著名编辑器EditPlus,大到Microsoft Word、Visual Studio等大型编辑器,都可以使用正则表达式来处理文本内容。
参考资料来源:百度百科-正则表达式
正则表达式"或"怎么写
竖线“|”就是或的意思。意思是将两个匹配条件进行逻辑“或”(or)运算。
例如正则表达式(him|her)匹配"it belongs to him"和"it belongs to her",但是不能匹配"it belongs to them."。注意:这个元字符不是所有的软件都支持的。
而最简单的元字符是点,它能够匹配任何单个字符(注意不包括换行符)。
扩展资料:求值运算:
进行逻辑表达式求值运算,不但要注意逻辑运算符本身的运算规则,而且还必须要遵循下面的两条原则:
1、对逻辑表达式从左到右进行求解。
2、短路原则:在逻辑表达式的求解过程中,任何时候只要逻辑表达式的值已经可以确定,则求解过程不再进行,求解结束。
具体理解逻辑表达式运算规则时可以先找到表达式中优先级最低的逻辑运算符,以这些运算符为准将整个逻辑表达式分为几个计算部分。
从最左边一个计算部分开始,按照算术运算、关系运算和逻辑运算的规则计算该部分的值。每计算完一个部分就与该部分右边紧靠着的逻辑运算符根据真值表进行逻辑值判断。
如果已经能够判断出整个逻辑表达式的值则停止其后的所有计算;只有当整个逻辑表达式的值还不能确定的情况下才进行下一个计算部分的计算。
参考资料来源:百度百科-正则表达式
Linux||正则表达式及grep命令
以下内容首发自公众号“小汪Waud”。
本期介绍在Linux环境下的正则表达式及grep命令。
正则表达式(Regular Expression)是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符及这些字符的特定组合,组成一个“规则字符串”,这个字符串用来表达对字符串的一种过滤逻辑。
正则表达式基本上是一种表示法,只要程序支持这种表示法,该程序就可以用来作为正则表达式的字符串处理之用。如vi、grep、awk、sed等程序支持正则表达式,所以可以使用正则表达式的特殊字符来进行字符串的处理。但例如cp、ls等命令并不支持正则表达式,所以只能用自己的通配符。
正则表达式依照不同的严谨度分为:基础正则表达式和扩展正则表达式。
注意!
grep是一种强大的文本搜索工具,可以使用正则表达式匹配模式查找文件里符合条件的字符串,并打印出来。
有点类似于WORD里的查找功能。
grep支持三种正则表达式语法:Basic、Extended和perl兼容。如果没有提供正则表达式类型,grep将搜索模式解释为基本的正则表达式。要将模式解释为扩展正则表达式,请使用-E。
查看grep的帮助文档,如下
基本用法
grep [OPTION]... PATTERN [FILE]...
高级用法
grep [-A] [-B] [--color=auto]"查找字符" [模式] [文件]
常用参数
首先通过cat命令查看samples.txt的内容,如下图
如果想检索以K为行首的行,通过以下命令即可得到
如果想检索以Z为行尾的行,通过以下命令即可得到
如果想检索三个字符其中前面为K,后面为D中间字符,为任意字符,通过以下命令即可得到
参考资料
https://www.runoob.com/linux/linux-comm-grep.html
https://www.bilibili.com/video/BV1Yy4y117SX?p=12
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!