加入收藏 | 设为首页 | 会员中心 | 我要投稿 汽车网 (https://www.0577qiche.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 教程 > 正文

Vim 中使用正则表达式

发布时间:2023-05-19 13:25:09 所属栏目:教程 来源:
导读:相信大家对于正则表达式的概念应该不会陌生,正则表达式以一种能够快速匹配文本的方式,同样的作为时下最流行的编辑器,Vim 中也支持使用正则表达式,这个小节就让我们一起来看下如何在 Vim 中使用正则表达式。

相信大家对于正则表达式的概念应该不会陌生,正则表达式以一种能够快速匹配文本的方式,同样的作为时下最流行的编辑器,Vim 中也支持使用正则表达式,这个小节就让我们一起来看下如何在 Vim 中使用正则表达式。

正则表达式概念
正则表达式(英文:regular expression),是一种文本模式。它赋予了 Vim 描述和分析文本的能力。可以根据需要,高效地增删改查各种类型得文本和数据。

实际工作中,无论是开发还是运维、测试等从事IT的人来说。正则表达式都是工作中必不可少的。它可以满足高效简洁地查找某些复杂规则的字符语句的需要。比如说以下几个场景:

对身份证号码 / IP 等匹配检查

网页对登陆名为手机号码匹配

特定规律字符串的处理

提取邮件某些开头规律行

可以结合其他额外工具(grep、sed 等)高效处理文本

正则表达式规则
Tips: 正则表达式= 特殊字符(元字符) + 文本(普通字符)

上面的公式其实就是一个完整的正则表达式,你可以简单的将正则表达式理解为是一种语言,元字符就是它的语法,普通字符就是单词。

我们来看一个简单的正则表达式的例子:

下面是一个自动化配置 terraform 的一个配置文件 main.tf。我们会用正则表达式 grep -E ‘(image_id|key name)’ main.tf 来同时匹配这两个字段。

对于不太了解正则表达式的人来说这段简单的公式是有点云里雾里的。下面我们来具体看下正则表达式具体语法规则有哪些,然后再回过头来看就一目了然了。

正则表达式思维
正则表达式按照字节或者字符作为匹配单位的。而不是单词或者句子。比如上述表达式我们简化下grep -E ‘bat’。 本质上不是匹配的 bat 这个单词,而是匹配 b,a,t 作为连续字符。

字符组:[0-9]:中括号作为正则表达式结构体,可以允许匹配结构体内任意匹配字符。比如这里的 [0-9] 匹配 0-9 之间任意一个数字。

Tips: 只有字符组内连字符 - 才是元字符。

多选结构:这就是我们刚才演示的例子。(a|b)——小括号中|作为元字符意思是或意思可以同时匹配 a、b.

下面我们来看下常用的具体表达式。

常用元字符
字符    含义
.    匹配除换行符以外的任意字符
\w    匹配字母或数字或下划线或汉字
\s    匹配任意的空白符
\d    匹配数字
\b    匹配单词的开始或结束
^    匹配字符串的开始
$    匹配字符串的结束

重复匹配
字符    含义
*    重复零次或更多次
+    重复一次或更多次
?    重复零次或一次
{n}    重复n次
{n,}    重复n次或者更多次
{n,m}    重复n到m次

根据这些表达式+上述的正则表达式思想可以解决大部分正则表达式应用。本篇主要针对 Vim 正则表达式讲解所以更加复杂的正则表达式就不再赘述。根据上面的铺垫,下面会结合 Vim 场景应用讲解正则表达式。

(编辑:汽车网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章