Linux正则表达式教程:Grep Regex示例
2019-07-30 本文已影响0人
程序员will
Linux正则表达式教程:Grep Regex示例
什么是正则表达式?
正则表达式是特殊字符,可帮助搜索数据,匹配复杂模式。正则表达式缩写为“regexp”或“regex”。
正则表达式的类型
为了便于理解,让我们逐一学习不同类型的正则表达式。
[TOC]
基本正则表达式
一些常用的正则表达式命令是tr,sed,vi和grep。下面列出了一些基本的正则表达式。
符号 | 说明 |
---|---|
。 | 替换任何角色 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
* | 匹配前一个字符的零或更多倍 |
\ | 代表特殊字符 |
() | 分组正则表达式 |
? | 只匹配一个字符 |
我们来看一个例子吧。
执行cat示例以查看现有文件的内容
Linux - 正则表达式搜索包含字母'a'的内容。
Linux - 正则表达式' ^ '匹配字符串的开头。让我们搜索一下STARTS的内容
Linux - 正则表达式仅过滤以字符开头的行。将忽略开头不包含字符“a”的行。
让我们看看另一个例子 -
Linux - 正则表达式仅选择那些以$结尾的行
Linux - 正则表达式区间正则表达式
这些表达式告诉我们字符串中字符的出现次数。他们是
表达 | 描述 |
---|---|
{N} | 匹配前面的字符完全出现'n'次 |
{N,M} | 匹配前面的字符出现'n'次但不超过m |
{n,} | 仅当前一个字符出现'n'次或更多时才匹配前一个字符 |
例:
过滤掉包含字符'p'的所有行
Linux - 正则表达式我们想要检查字符'p'是否在字符串中依次出现2次。为此,语法将是:
cat sample| grep -E p\{2}
Linux - 正则表达式
注意:您需要使用这些正则表达式添加-E。
扩展正则表达式
这些正则表达式包含多个表达式的组合。他们之中有一些是:
表达 | 描述 |
---|---|
\ + | 匹配前一个字符的一个或多个匹配项 |
\? | 匹配前一个字符的零次或一次匹配 |
例:
搜索所有字符't'
Linux - 正则表达式假设我们要过滤字符'a'在字符't'之前的行
我们可以使用命令
cat sample| grep“a\+t”
Linux - 正则表达式
支撑扩张
大括号扩展的语法是花括号“{}”内的序列或逗号分隔的项目列表。序列中的起始和结束项由两个句点“..”分隔。
一些例子:
Linux - 正则表达式在上面的示例中,echo命令使用大括号扩展创建字符串。
总结
- 正则表达式是一组用于检查字符串模式的字符
- 它们也被称为“正则表达式”和“正则表达式”
- 学习编写脚本的正则表达式很重要
- 一些基本的正则表达式是:
符号 | 说明 |
---|---|
。 | 替换任何角色 |
^ | 匹配字符串的开头 |
$ | 匹配字符串的结尾 |
- 一些扩展的正则表达式是:
表达 | 描述 |
---|---|
\ + | 匹配前一个字符的一个或多个匹配项 |
\? | 匹配前一个字符的零次或一次匹配 |
- 一些区间正则表达式是:
表达 | 描述 |
---|---|
{N} | 匹配前面的字符完全出现'n'次 |
{N,M} | 匹配前面的字符出现'n'次但不超过m |
{n,} | 仅当前一个字符出现'n'次或更多时才匹配前一个字符 |
- 大括号扩展用于生成字符串。它有助于创建多个字符串。