VIM-灰常有用的正则匹配

这篇具有很好参考价值的文章主要介绍了VIM-灰常有用的正则匹配。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、VIM,GVIM中正则匹配的用处

VIM的一个强大之处就在于其文本搜索、匹配的能力,可用于替换、删除、查找等,极大提升用户的文本编辑效率,写代码必备技能。

二、常用的匹配字符

大体上可以分为四类,字符的匹配、数量的匹配(也可理解为匹配次数)、位置的匹配(开头、结尾等),和特殊字符的匹配。

2.1 字符的匹配

常用的字符匹配如下表:

字符 含义
. 匹配任意字符
[xxx] 匹配方括号中的任意字符
[^xxx] 匹配除了方括号内字符以外的任意字符
\d 匹配任意数字,相当于[0-9]
\D 匹配除了数字以外的任意字符,相当于[^0-9]
\l 匹配字母a-z
\L 匹配字母a-z以外的其他字符
\u 匹配字母A-Z
\U 匹配字母A-Z以外的其他字符
\x 匹配十六进制数,相当于[0-9a-fA-F]
\X 匹配十六进制数以外的字符,相当于[^0-9a-fA-F]
\w 匹配任意word,简单来说就是任意数字、字母组成的一个无空白字符的字符串,两个字符串中间有空白字符的会被认为是两个word
\s 匹配空白字符,会将空格和tab都匹配到
\S 匹配空白字符以外的字符
\t 匹配tab字符

2.2 数量的匹配(匹配次数)

一般格式是“字符匹配pattern次数匹配pattern”,表示将符合字符匹配pattern的字符匹配次数pattern次。注意使用时下表中除 * 外其他的前边的反斜杠不要丢掉。

字符 含义
* 匹配任意多次
\? 匹配0-1次
\+ 匹配1-任意多次
\'{n,m}' 匹配n-m次
\'{n}' 匹配n次
\'{n,}' 匹配n到任意次
\'{,n}' 匹配0-n次
注:实际使用时花括号两侧的单引号不用打,这里是markdown的问题,不打单引号啥都显示不出来。

2.3 匹配位置

指明匹配的位置,一般就行首行位词头词尾,要注意位置匹配时看清楚有没有空格,比如不要匹配行首时默认忽略了开头的空白字符从而导致匹配失败。

字符 含义
^ 匹配行首
$ 匹配行尾
\< 匹配词首
\> 匹配词尾

2.4特殊字符

有一些字符因为本身具有特殊含义,上边基本也都提到了,所以在匹配这些字符时要加反斜杠。

字符 含义
\. 匹配字符“.”
\* 匹配字符“*”
\$ 匹配字符“$”
\ [ 匹配字符“[”,字符“]”同理,但是若直接匹配“[”和"]"也可以匹配到,加反斜杠一般用于和2.1中匹配方括号内任意字符的情况区分开
\{ 同上
\ / 匹配字符“/”, 字符“\”同理

三、小练习

这里我们用vim的底行搜索举几个例子。
1.匹配开头是“aaa”的
VIM-灰常有用的正则匹配

VIM-灰常有用的正则匹配

2.只匹配“aaa”
VIM-灰常有用的正则匹配

3.匹配一个字母加一个数字
VIM-灰常有用的正则匹配

4.匹配拥有四个"ha"的单词(圆括号字符分组)
这里用到了圆括号字符分组的方法,将ha看做一个整体,匹配满足次数的单词。
VIM-灰常有用的正则匹配

上图的匹配模式为:将ha看做整体,匹配四次
比如我不知道我想找的单词里有多少次ha,呢么也可以按照下面的办法来。
VIM-灰常有用的正则匹配

上图的正则匹配式的含义是:匹配以ha开头,ha匹配任意多次,词尾也是ha的。

小结
vim中正则匹配的用处很多,如搜索、替换、删除、文本提取(见上篇文章:https://blog.csdn.net/weixin_43655109/article/details/133213974)等等,用好的话可以大大提高工作效率。文章来源地址https://www.toymoban.com/news/detail-839052.html

到了这里,关于VIM-灰常有用的正则匹配的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Java 正则表达式匹配

    正则表达式: 定义一个搜索模式的字符串。 正则表达式可以用于搜索、编辑和操作文本。 正则对文本的分析或修改过程为:首先正则表达式应用的是文本字符串(text/string),它会以定义的模式从左到右匹配文本,每个源字符只匹配一次。 正则表达式 匹配 this is text 精确匹配

    2024年02月06日
    浏览(47)
  • NLP“正则匹配分词“什么意思

    今天在看NLP代码的时候,有一段代码没有看懂:  通过 正则匹配 对第一个句子(sents1)进行分词,得到tokens。  正则匹配分词 是将输入的序列按照特定的规则进行分割和标记的过程(其实就是将句子拆分成多个token的过程) 。正则表达式是一种用于匹配字符串的表达式,通

    2024年02月15日
    浏览(46)
  • laravel 的SQL使用正则匹配

    案例场景 精准正则匹配 查询结果 代码如下 字符 “^” 匹配以特定字符或者字符串开头的文本 name 字段值包含数字以外的字符的记录

    2024年02月16日
    浏览(32)
  • VSCode 正则表达式 匹配多行

    VS Code 正则表达式匹配多行 (.|n)*? 案例1: str(.|n)*?, 案例2: const(.|n)*?}$ 案例3: fn(.|n)*?},

    2024年02月02日
    浏览(41)
  • Python网络爬虫-re正则匹配数据

    目录 前言 什么市正则表达式? 常见正则表达式元字符表 匹配字符 元字符 特定构造 Python常用的re正则匹配函数库  1. re.match(pattern, string) 2. re.search(pattern, string) 3. re.findall(pattern, string) 4. re.finditer(pattern, string) 5. re.split(pattern, string) 6. re.sub(pattern, repl, string) 7. re.compile(pattern) 运用

    2024年04月25日
    浏览(36)
  • golang 正则匹配(更详细易懂 语法+示例)

    package main import (     \\\"fmt\\\"     \\\"regexp\\\" ) func main() {     text := `Hello 世界!123 Go.`     reg := regexp.MustCompile(`[a-z]+`)             // 查找连续的小写字母     fmt.Printf(\\\"%qn\\\", reg.FindAllString(text, -1)) // 输出结果[\\\"ello\\\" \\\"o\\\"]     reg = regexp.MustCompile(`[^a-z]+`)             // 查找连续的非

    2024年02月13日
    浏览(33)
  • 正则表达式包含数字和字符匹配

    至少6位。 pattern : (?=. [0-9])(?=. [A-Za-z])[0-9A-Za-z]{6,} 正则表达式中的“?=”是一个正向预查字符,它的意思是匹配前一个字符出现的最少一次。具体来说,当一个匹配出现时,它会检查前一个字符是否符合要求,如果符合,则继续匹配下一个字符,否则停止匹配。

    2024年02月06日
    浏览(46)
  • 正则表达式的匹配(py编程)

    1. 匹配单个字符 在上一小节中,了解到通过re模块能够完成使用正则表达式来匹配字符串 本小节,将要讲解正则表达式的单字符匹配 代码 功能 . 匹配任意1个字符(除了n) [ ] 匹配[ ]中列举的字符 d 匹配数字,即0-9 D 匹配非数字,即不是数字 s 匹配空白,即 空格,tab键

    2024年02月02日
    浏览(59)
  • 详解正则表达式匹配方法 match()

    在前端开发中,正则表达式是一大利器。所以我们这次就来讨论下match()方法。 match本身是JavaScript语言中字符串对象的一个方法,该方法的签名是 match([string] | [RegExp]) 它的参数既可以是一个字符串,也可以是一个正则表达式。该方法绝大多数都是要使用正则表达式的,所以参

    2024年02月11日
    浏览(41)
  • 剑指 Offer 19. 正则表达式匹配

    剑指 Offer 19. 正则表达式匹配 初始化要考虑主串为空字符串,模式串为 a*b*c* 的形式。 一般情况时,根据模式串是 普通字符 、 \\\'.\\\' 、 \\\'*\\\' 分情况考虑。为 \\\'*\\\' 时,考虑 匹配0次 和 匹配多次 的情况,匹配多次时要注意判断前提是能匹配。

    2024年02月09日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包