oeasy教您玩转vim - 35 - # 正则表达
查找进阶
回忆上节课内容
- 实时搜索
:set incsearch
- 大写小写
ignorecase
查找当前单词
- * 正向按单词
- # 反向按单词
- g* 正向不按单词
- g# 反向不按单词
继续查找
- n 保持方向
- N改变方向
- 这个搜索可以做一些模糊匹配吗?
- 应该在哪里查询呢?
模式匹配
:h /
可以找到关于搜索相关的帮助- 我们可以打开
patterns.txt
- 找到关于比较简单的解释
03.9
的超链接位置 - ctrl + ] 跳转文档
- 我们可以打开
行头行尾
/include
匹配所有的include
^
意味着行开头/^include
只匹配include
在行头的/^#
只匹配#
在行头的
$
意味着行结尾/the.$
只匹配the.
在行尾的/^End$
匹配行头接着End
,然后就是行尾的一行
:g/^$/d
删除所有空行- 行头行尾和词头词尾很像
^
本身就是跳到行头$
本身就是跳到行尾
任意字符
.
可以匹配任意字符,作为通配符来使用比如
/c.m
- 第一个字符为
c
- 第二个字符为
.
就是任意字符 - 第三个字符为
m
- 第一个字符为
- 可以匹配
company
中的com
- 也可以匹配
camera
中的cam
任意字符
ter.
匹配ter
后面加一个字符
如果想要正常匹配一个真的
.
- 就要加上一个反斜杠
\
- 写做
\.
使用反斜杠
\
转义之后.
就不再代表任意字符了- 比如搜索
/ter\.
就是寻找ter.
- 就要加上一个反斜杠
更多字符
.
代表任意字符/c.m
匹配c和m中间有一个字符
的情况/c..m
匹配c和m中间有两个字符
的情况/c...m
匹配c和m中间有三个字符
的情况
如果我想查找 c 和 m 中间有任意多个字符怎么办?
- 使用
*
通配符 /a*
意味着出现 0 到任意多个 a/c.*m
在c
和m
中间出现 0 到任意多个.
(任意字符)如果我希望出现任意多次的是小写字母怎么办?
/c[a-z]*m
这样就是中间出现任意多个[a-z]小写字母
了
- 使用
:g/^s*$/d
删除搜有只有空格和tab的行s
代表空格和tab
词头词尾
^
和$
分别代表着行头和行尾- 再回一下词头词尾
- 如果我想找出单词的开头结尾是某些字符的怎么办呢?
\<
意味着单词开头/\<a
意味着a
开头的单词
\>
意味着单词结尾/\>b
意味着b
结尾的单词
\<a[a-z]*\>b
- 意味着以 a 开头,b 结尾,ab 之间可能有零到任意多个字符的单词
搜索历史
我们使用
*
、#
查找的时候就自动给加上这个词头词尾- 可以 * 之后
- /
- 配合上下方向键看到
- 曾经的搜索记录
推荐网站
- 推荐一个好玩的网站
- https://blog.robertelder.org/regular-expression-visualizer/
- 可以可视化的观察正则匹配的过程
总结
行头行尾
^
意味着行开头$
意味着行结尾
任意字符
.
代表任意字符[a-z]
代表任意小写字母
字符数量
*
代表 0 到任意多个前字符+
代表 1 到任意多个前字符?
代表 0 或 1 个前字符
行头行尾
\<
意味着单词开头\>
意味着单词结尾
- 正则表达式的初步规则先介绍到这里
- 我们掌握了在 vi 中光标运动的各种方法
- 但如何编辑文本呢?
- 下次再说
[Github地址] (https://github.com/overmind1980/vimtutorial)
[Gitee地址] (https://gitee.com/overmind1980/vimtutorial)
[蓝桥实验楼 邀请码FJWYIMGB] (https://www.lanqiao.cn/courses/2840)
oeasy教您玩转vim - 35 - # 正则表达的更多相关文章
- oeasy教您玩转vim - 56 - # 字符可视化模式
可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...
- oeasy教您玩转vim - 57 - # 行可视化
可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...
- oeasy教您玩转vim - 53 - # 批量替换
查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...
- oeasy教您玩转linux010203显示logo
我们来回顾一下 上一部分我们都讲了什么?
- oeasy 教您玩转linux010101查看内核uname
linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...
- oeasy教您玩转linux010202软件包管理apt
顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010201持续输出yes
我们来回顾一下 上一部分我们都讲了什么?
- oeasy教您玩转linux010108到底哪个which
到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?
- oeasy教您玩转python - 006 - # hello world
Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...
- oeasy教您玩转linux-010110内容回顾
我们来回顾一下 我们都讲了什么?
随机推荐
- linux 文件的特殊权限:suid sgid sticky
目录 一.关于文件的特殊权限 二.suid 三.SGID 四.Stickybit 一.关于文件的特殊权限 1.文件与目录设置不止基础权限:r,w,x,还有所谓的特殊权限.特殊权限会拥有一些" ...
- 【wordpress开发必备】新增必填字段相关函数和钩子,适用6.1版本
当表单包含多个必填字段时,它们的标签可能带有一个带有图例的星号,以说明这些字段是必填的.为了减少代码重复并帮助维护全局一致的标记,WordPress 有两个新函数:wp_required_field_ ...
- js 判断手机号格式
大江东去,浪淘尽,千古风流人物.故垒西边,人道是,三国周郎赤壁.乱石穿空,惊涛拍岸,卷起千堆雪.江山如画,一时多少豪杰.遥想公瑾当年,小乔初嫁了,雄姿英发.羽扇纶巾,谈笑间,樯橹灰飞烟灭.故国神游,多 ...
- 强!推荐一款开源接口自动化测试平台:AutoMeter-API !
在当今软件开发的快速迭代中,接口自动化测试已成为确保代码质量和服务稳定性的关键步骤. 随着微服务架构和分布式系统的广泛应用,对接口自动化测试平台的需求也日益增长. 今天,我将为大家推荐一款强大的开源接 ...
- 从 Redis 开源协议变更到 ES 国产化:一次技术自主的机遇
引言 近日,Redis Labs 宣布其主导的开源项目 Redis 将采用双重源代码可用许可证(RSALv2)和服务器端公共许可证(SSPLv1).这一重大决策标志着 Redis 从传统的 BSD 许 ...
- INFINI Labs 产品更新 | Easysearch 新增 kNN 搜索功能、Console 支持 LDAP 认证登录等
INFINI Labs 产品又更新啦~,包括 Easysearch v1.3.0.Gateway v1.16.0.Console v1.4.0.Agent v0.5.1.本次产品更新了许多实用新特性, ...
- 极限科技旗下软件产品 INFINI Easysearch 通过统信 UOS 认证
近日,极限数据 (北京) 科技有限公司(以下简称:极限科技)旗下的软件 INFINI Easysearch 搜索引擎软件 V1.0 通过统信 UOS 服务器操作系统 V20 认证. 此次兼容适配基于统 ...
- 什么是JDBC,在上面时候会用到它?
JDBC的全称是Java DataBase Connection,也就是Java数据库连接,我们可以用它来操作关系型数据库.JDBC接口及相关类在java.sql包和javax.sql包里.我们可以用 ...
- nordic—RTC+PPI定时驱动某外设做非单次触发(本次测试为驱动GPIO口做电平翻转)
简介:在nordic的开发中使用到RTC时,对于比较通道0/1/2/3的中断来说,如果不进行相关配置(如SDK中例子,使用的RTC比较通道就只能触发一次,不能多次触发),会导致比较中断只进入一次,如果 ...
- 简单的css3头像旋转与3D旋转效果
Tips:当你看到这个提示的时候,说明当前的文章是由原emlog博客系统搬迁至此的,文章发布时间已过于久远,编排和内容不一定完整,还请谅解` 简单的css3头像旋转与3D旋转效果 日期:2017-7- ...