首页 > 其他分享 >VIM-灰常有用的正则匹配

VIM-灰常有用的正则匹配

时间:2024-03-12 20:22:23浏览次数:27  
标签:字符 匹配 字母 VIM 正则 ha 任意

一、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”的

2.只匹配“aaa”

3.匹配一个字母加一个数字

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

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

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

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

标签:字符,匹配,字母,VIM,正则,ha,任意
From: https://www.cnblogs.com/xiaoguoic/p/18069149

相关文章

  • 【计算机算法】【图论】【最优匹配与点云对准问题】最(极)大团算法
    问题团与最大团的定义图顶点集的子集满足任意两个顶点相邻,称该子集是该图的一个团。图的所有团中顶点最多的,即最大的一个或多个,称为图的最大团或极大团。图的最大团的实际应用问题CVPR2023最佳论文之一用最大团算法实现鲁棒的点云对准,有效解决外点问题。顾名思义有矛盾:......
  • vim基础使用
    vim基础使用前言:在使用linux系统时,必不可少的需要使用到vim,本次来介绍vim的基础用法1.0vim的五种模式在使用vim时,要根据需要选择不同的模式,vim共有五种模式,分别是:可视化模式:进行文本选择替换模式:进行字符串替换普通模式:这是vim打开后的默认模式,在这个模式下,可以执行......
  • SQL 多关键字查询并根据匹配程度排序
    --创建测试表IFEXISTS(SELECT*FROMsys.objectsWHEREobject_id=OBJECT_ID(N'[dbo].[Score]')ANDtypein(N'U'))DROPTABLE[dbo].[Score]GOCREATETABLE[dbo].[Score]([Id][int]IDENTITY(1,1)NOTNULL,[UserName][nvarchar](50......
  • 正则表达式
    .匹配除换行符以外的任意字符。^匹配字符串的开头。$匹配字符串的结尾。*匹配前一个字符零次或多次。+匹配前一个字符一次或多次。?匹配前一个字符零次或一次。非贪婪匹配,只要后面的满足就停止{n}匹配前一个字符恰好n次。{n,}匹配前一个字符至少n次。{n,m}......
  • 二进制文件和符号文件(PDB)如何校验是否匹配
     1.静态检查windbg调试工具包中有一个工具symchk.exe,选项很多,下面一个简单的用法可以检查一个test.exe能不能找到与它匹配的PDB:  这是成功的情形.下面来个失败的作为对比: 2.如果已经在windbg内部,可以通过下面的命令检查  最后一行说MATCH,肯定没问......
  • JS正则常用校验
    手机号(mobilephone)中国(严谨),根据工信部2019年最新公布的手机号段1constreg=/^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/;2conststr="19119255642";3console.log(`校验${reg.test(str)?......
  • 正则re
    正则表达式它是约束字符串匹配某种形式的规则正则表达式有什么用?1.检测某个字符串是否符合规则.比如:判断手机号,身份证号是否合法2.提取网页字符串中想要的数据.比如:爬虫中,提取网站天气,信息,股票代码,星座运势等具体关键字在线测试工具http://tool.chinaz.com/regex/......
  • 03_vim编辑器的使用
    vim编辑器的使用1.什么是vim?vim是一个文本编辑器,类似于win上的wps。2.为什么要学习vim?因为几乎每一个发行版都有vim/vi编辑器,嵌入式Linxu上通常也会集成vim。3.vi和vim的关系?vim是vi的加强版。4.怎么打开vi编辑器?直接在控制台输入命令:vifilename如果当前路径没......
  • 安装 NeoVim
    安装NeoVimmacOSbrewinstallneovimWindowswingetinstallNeovim.Neovim或者你有装scoop的话:scoopinstallneovimLinuxcurl-LOhttps://github.com/neovim/neovim/releases/latest/download/nvim.appimage#下载AppImagechmodu+xnvim.appimage#为AppI......
  • vim 编辑python文件 禁止tab转换为空格的设置
    1.修改各种路径下的.vimrc都没用2.一个解决方法:每次用vim打开python文件后,分别运行:setts=4(8):setnoexpandtab:%retab!3.其他:安装python编辑的dictionary补全提示插件:filetypepluginonletg:pydiction_location='~/.vim/tools/pydiction/compl......