查找进阶

回忆上节课内容

  • 实时搜索 :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.*mcm 中间出现 0 到任意多个 .(任意字符)
      • 如果我希望出现任意多次的是小写字母怎么办?

        • /c[a-z]*m 这样就是中间出现任意多个 [a-z]小写字母
  • :g/^s*$/d 删除搜有只有空格和tab的行

    • s代表空格和tab

词头词尾

  • ^$ 分别代表着行头和行尾
  • 再回一下词头词尾
  • 如果我想找出单词的开头结尾是某些字符的怎么办呢?

  • \< 意味着单词开头

    • /\<a 意味着 a 开头的单词
  • \>意味着单词结尾

    • /\>b 意味着 b 结尾的单词
  • \<a[a-z]*\>b

    • 意味着以 a 开头,b 结尾,ab 之间可能有零到任意多个字符的单词

搜索历史

  • 我们使用 *# 查找的时候就自动给加上这个词头词尾

    • 可以 * 之后
    • /
    • 配合上下方向键看到
    • 曾经的搜索记录

推荐网站

总结

  • 行头行尾

    • ^ 意味着行开头
    • $ 意味着行结尾
  • 任意字符

    • . 代表任意字符
    • [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 - # 正则表达的更多相关文章

  1. oeasy教您玩转vim - 56 - # 字符可视化模式

    ​ 可视化编辑 回忆上节课内容 我们学习了关于模式匹配中使用参数 单个参数 :%s/<h2>\(.*\)</h2>/ - \1/g 多个参数 :%s/<img src=\ ...

  2. oeasy教您玩转vim - 57 - # 行可视化

    ​ 可视化编辑 回忆上节课内容 上次我们了解到可视模式 其实可视化对应三种子模式 字符可视模式 v 行可视模式 大写V 块可视模式ctrl+v 我们先来了解字符可视化模式 快捷键 v 可配合各种mot ...

  3. oeasy教您玩转vim - 53 - # 批量替换

    查找细节 回忆上节课内容 我们温习了关于搜索的相关内容 /正向,?反向 n保持方向,N改变方向 可以设置 是否忽略大写小写 是否从头开始查找 是否高亮显示 还有一些正则表达式的使用方法 行头行尾 ^$ ...

  4. oeasy教您玩转linux010203显示logo

    我们来回顾一下 上一部分我们都讲了什么?

  5. oeasy 教您玩转linux010101查看内核uname

    linux([?l?n?ks]) 是什么????? 咱们这次讲点什么呢?这次咱们讲讲这个 linux([?l?n?ks]),什么是 linux([?l?n?ks])呢?这linux([?l?n?ks] ...

  6. oeasy教您玩转linux010202软件包管理apt

    顾一下 上一部分我们都讲了什么?

  7. oeasy教您玩转linux010201持续输出yes

    我们来回顾一下 上一部分我们都讲了什么?

  8. oeasy教您玩转linux010108到底哪个which

    到底哪个which 回忆上次内容 我们上次讲了查找命令位置whereis 我想找到whereis的位置怎么办?

  9. oeasy教您玩转python - 006 - # hello world

    ​ Hello World! 回忆上次内容 python3 的程序是一个 5.3M 的可执行文件 python3 里面全都是 cpu 指令 可以执行的那种指令 我们可以把指令对应的汇编找到 objdu ...

  10. oeasy教您玩转linux-010110内容回顾

    我们来回顾一下 我们都讲了什么?

随机推荐

  1. Machine Learning - 笔记1

    一.监督学习(supervised learning) 1.回归(regression)         ①按我的理解来说,就是对于训练模型所用到的数据集,能够知道Input和Output的特征.比如 ...

  2. vue我自己的动态菜单思路

    1.在router里把所有的路由都加上. 2.后端存储路由path和其他设计需要的信息. 3.登录后,后端返回菜单树,根据权限不同,返回的菜单不同,并且还要返回每个path代表的页面具有的权限数组.可 ...

  3. 基于pulp的线性优化问题:微电网日前优化调度(复现)

    摘录来源:(71条消息) 微电网日前优化调度入门:求解一道数学建模题_我不是玉的博客-CSDN博客 学习记录与复现 问题描述 问题出自第十届"中国电机工程学会杯"全国大学生电工数学 ...

  4. svg动画导致持续占用CPU

    1.在一次性能优化中突然发现一个svg矢量图动画导致CPU持续占用的问题,该svg在web中使用, 即使webview释放之后,CPU依然占用达到10%,6s+上测试结果 svg如下所示: <s ...

  5. wordpress博客系统报错

    第一种,只显示nginx的默认网页 说明wordpress的网页配置文件没有被系统读取 我们就需要去查看nginx的配置文件/etc/nginx/conf.d/default.conf 首先,查看是不 ...

  6. 使用eNSP配置灵活QinQ

    参考链接:https://blog.csdn.net/xu119718/article/details/55260519 在"使用eNSP配置端口QinQ"实验中是基于端口划分的用 ...

  7. Vue 3 Teleport:掌控渲染的艺术

    title: Vue 3 Teleport:掌控渲染的艺术 date: 2024/6/5 updated: 2024/6/5 description: 这篇文章介绍了Vue3框架中的一个创新特性--T ...

  8. JS注释 JS变量

    <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF-8 ...

  9. 剑指Offer-48.不用加减乘除做加法(C++/Java)

    题目: 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 分析: 将加法还原成最原始的计算方法,也就是分别计算进位和非进位的和,最后再将这两部分合起来,便是和.我们可以利 ...

  10. 小米 红米 MIUI 重新打开(开启)蓝牙耳机电量弹窗

    原本关闭了下拉通知栏,显示耳机电量的窗口.想重新开开启. 解决方法: 1.确保小爱同学开了通知权限. 2.在蓝牙-高级设置里-开启"小米快连" 3.手机是解锁状态(非锁屏),耳机需 ...