grep正则表达式(grep正则表达式数字)

很多朋友对于grep正则表达式和grep正则表达式数字不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

在计算机领域,grep是一款强大的文本搜索工具,而正则表达式则是grep的灵魂。通过正则表达式,我们可以实现对文本的精准搜索、替换和提取。本文将带领大家深入了解grep正则表达式的奥秘,让你在文本处理的道路上更加得心应手。

一、什么是grep?

grep是一款在Linux和Unix系统中广泛使用的文本搜索工具。它的名字来源于“global regular expression print”,意为“全局正则表达式打印”。grep可以搜索文件中的文本,并将匹配的行打印出来。

二、什么是正则表达式?

正则表达式(Regular Expression,简称Regex)是一种用于匹配字符串中字符组合的模式。在grep中,正则表达式用于指定搜索的文本模式。

三、grep正则表达式的常用符号

“”r””t””v] |

符号 说明
^ 匹配输入字符串的开始位置
$ 匹配输入字符串的结束位置
. 匹配除换行符之外的任意单个字符
* 匹配前面的子表达式零次或多次
+ 匹配前面的子表达式一次或多次
? 匹配前面的子表达式零次或一次
{n} 匹配前面的子表达式恰好n次
{n,} 匹配前面的子表达式至少n次
[abc] 匹配括号内的任意一个字符
[^abc] 匹配除括号内的字符之外的任意一个字符
“”d 匹配一个数字字符。等价于[0-9]
“”D 匹配一个非数字字符。等价于[^0-9]
“”w 匹配包括下划线的任何单词字符。等价于[0-9a-zA-Z_]
“”W 匹配任何非单词字符。等价于[^0-9a-zA-Z_]
“”s 匹配任何空白字符,包括空格、制表符、换行符等等。等价于[“”f”

“”r””t””v] |

“”S 匹配任何非空白字符。等价于[^””f”

四、grep正则表达式的应用实例

下面是一些grep正则表达式的应用实例,帮助你更好地理解其用法。

| 搜索内容 | 正则表达式 | 说明 |

| — | — | — |

| 搜索包含“hello”的行 | hello | 匹配包含“hello”的行 |

| 搜索以“hello”开头的行 | ^hello | 匹配以“hello”开头的行 |

| 搜索以“world”的行 | world$ | 匹配以“world”的行 |

| 搜索包含数字的行 | “”d | 匹配包含数字的行 |

| 搜索包含字母的行 | “”w | 匹配包含字母的行 |

| 搜索包含空白的行 | “”s | 匹配包含空白的行 |

五、grep正则表达式的进阶技巧

1. 分组:使用括号将多个字符组合成一个整体,以便进行匹配或引用。

“`bash

grep ‘(“”d{4})-(“”d{2})-(“”d{2})’ filename.txt

“`

2. 引用:使用`””1`、`””2`等引用分组中的内容。

“`bash

grep ‘(“”d{4})-(“”d{2})-(“”d{2})’ filename.txt | awk -F’-‘ ‘{print $1}’

“`

3. 反向引用:使用`”

`引用分组中的内容,其中n为分组号。

“`bash

grep ‘(“”d{4})-(“”d{2})-(“”d{2})’ filename.txt | awk -F’-‘ ‘{print $3}’

“`

4. 贪婪匹配与懒惰匹配:贪婪匹配会尽可能多地匹配字符,而懒惰匹配则会尽可能少地匹配字符。

“`bash

贪婪匹配

grep ‘a.*b’ filename.txt

懒惰匹配

grep ‘a.*?b’ filename.txt

“`

六、总结

grep正则表达式是文本处理中的利器,掌握它可以帮助我们更高效地处理文本。本文从grep和正则表达式的概念入手,介绍了常用符号、应用实例和进阶技巧,希望能帮助你更好地掌握grep正则表达式。

在今后的工作中,多加练习,不断积累经验,相信你会成为一名文本处理的达人!

Linux正则表达式教程:Grep Regex示例

正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式。正则表达式缩写为“regexp”或“regex”。

为了便于理解,让我们逐一学习不同类型的正则表达式。

[TOC]

一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。

我们来看一个例子吧。

执行cat示例以查看现有文件的内容

搜索包含字母’a’的内容。

‘ ^’匹配字符串的开头。让我们搜索一下STARTS的内容

仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。

让我们看看另一个例子-

仅选择那些以$结尾的行

这些表达式告诉我们字符串中字符的出现次数。他们是

例:

过滤掉包含字符’p’的所有行

我们想要检查字符’p’是否在字符串中依次出现2次。为此,语法将是:

注意:您需要使用这些正则表达式添加-E。

这些正则表达式包含多个表达式的组合。他们之中有一些是:

例:

搜索所有字符’t’

假设我们要过滤字符’a’在字符’t’之前的行

我们可以使用命令

大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表。序列中的起始和结束项由两个句点“..”分隔。

一些例子:

在上面的示例中,echo命令使用大括号扩展创建字符串。

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中间字符,为任意字符,通过以下命令即可得到

参考资料

grep 命令与正则表达的协同使用

UpDate2018-10-22

Author unnam3d

Mail indv.zhang@foxmail.com

TipPlease feel free to contact me via mail above for any confusion orsuggestions

grep(Global Research)亦即根据某一个模式(过滤规则)去全局性的搜索文本,并将符合模式的文本行显示出来。grep其本身的意义是做部分匹配,也就是说,当你使用grep进行搜索的时候,只要某一行的内容里部分匹配,grep就会将结果显示出来。而这里的模式(Pattern)是指,文本字符和正则表达式的元字符组合而成的匹配条件。简而言之,grep就是使用基本正则表达式定义的模式来过滤文本的命令。

notice:grep默认工作在贪婪模式下,也就是在匹配的过程中,会尽可能长的匹配,能匹配到哪就匹配到哪。

usage: grep [options] PATTERN [FILE…]

正则表达式分为基本正则表达式(Basic REGEXP)与扩展正则表达式(Extended REGEXP)。

无论是哪一种,正则表达式都含义几个特性:

正则表达式里都有一些元字符,这些元字符不表示其本身的意义,而是在正则表达式中有其特定的意义。我在 bash特性简单梳理一文中提及过文件名通配(globbing)。

在文件名通配中,这些元字符的特定意义如下:

而在正则表达式中,元字符的特定意义为:

除了这些特定的元字符的意义外,正如文件通配符中所描述的字符集合,正则表达式同样支持字符集合:

位置锚定,就是在进行搜索的时候,所搜索的字符必须出现在特定的位置。

分组的意义,通俗的来讲,就是将一捆字符作为一个整体来看待,用 \(\)来表示。

例如: \(ab\)*将ab作为一个整体,星号修饰的ab这一个整体。而ab*仅仅修饰b一个字符

$ grep’\(ab\)*’ test.txt

上面这个命令就表示在文件 test.txt中匹配ab这一整体,它可以匹配到ab, abab, ababab这样。

后向引用

与分组搭配使用的还有后向引用。

扩展正则表达式与正则表达式在很多地方的意义都是相同的。例如:

NOTICE:

除了与正则表达式相同意义的地方,扩展表达式也有其独特的地方:

OK,关于grep正则表达式和grep正则表达式数字的内容到此结束了,希望对大家有所帮助。

© 版权声明
THE END
喜欢就支持一下吧
点赞11 分享