记性不好,才一段时间不用发现vim
的东西忘的差不多了。要重新熟悉才行。现从正则表达式开始,用惯了Java
和Python
的正则表达式,再用Linux
的正则表达式还真有点不习惯,而且grep
和vim
的正则表达式有些微区别,grep
和egrep
的正则表达式也有一点区别。用用之前要好好想想才行,太恶心了。
今天现把VIM
的正则表达式整理一些,过几天整理grep
的。(补充:grep的正则表达式在元字符方面和vi差不多,不整理了)
vim
的正则表达式的有两种模式,magic
和nomagic
,两种模式下,元字符是不一样的。可以通过set
mogic
和set
nomagic
进行选择,默认是magic
。建议不要乱设置,就用magic
模式差不多。也可以再Pattern
指定用magic
和nomagic
,这里不废话了,下面列出常用的magic
的表达式。
对前一个模式的次数匹配
\*
|
0
到多次,尽可能多匹配
|
\+
|
1
到多次,尽可能多匹配
|
\=
|
0
到1
次,尽可能多匹配
|
\?
|
0
到1
次,尽可能多匹配
|
\{n,m}
|
n
到m
词,尽可能多匹配
|
\{n}
|
n
次,尽可能多匹配
|
\{n,}
|
至少n
次,尽可能多匹配
|
\{,m}
|
0
到m
次,尽可能多匹配
|
\{}
|
0
到多次,尽可能多匹配(和\*
一样)
|
\{-n,m}
|
n
到m
次,尽可能少匹配
|
\{-n}
|
n
次
|
\{-n,}
|
至少n
次,尽可能少匹配
|
\{-,m}
|
至多m
次,尽可能少匹配
|
\{-}
|
0
到多次,尽可能少匹配
|
位置匹配
^
|
行开头
|
\_^
|
行开头
|
$
|
行末尾
|
\_$
|
行末尾
|
.
|
换行之外的任何字符
|
\_.
|
单个字符,包括换行符
|
\<
|
单词开始
|
\>
|
单词结束
|
\%^
|
文件开头
|
\%$
|
文件结束
|
\%V
|
可视化区域内部
|
\%#
|
光标位置
|
\%'m
|
标记点m,m
可以自己定义的标记点(
使用'm)
|
\%nl
|
匹配第n
行,n
是一个数字
|
\%nc
|
匹配第n
列,n
是一个数字
|
常用预定义字符
\i
|
标识符字符,如字母数字下划线等
|
\I
|
和\i
相似,但不包括数字
|
\f
|
文件名字符
|
\F
|
类似\f
,但不包括数字
|
\p
|
可打印字符
|
\P
|
类似\p
,但不包括数字
|
\s
|
空白字符
|
\S
|
非空白字符
|
\d
|
数字[0-9]
|
\D
|
非数字[^0-9]
|
\x
|
16
进制字符[0-9a-fA-F]
|
\X
|
非16
进制字符
|
\o
|
八进制字符[0-7]
|
\O
|
非八进制字符
|
\w
|
字母[a-zA-Z_0-9]
|
\W
|
非字母
|
\h
|
单词开头字符,比\w
少了数字
|
\H
|
非单词开头字符
|
\a
|
字母表字符[a-zA-Z]
|
\A
|
非字母表字符
|
\l
|
小写字母
|
\L
|
非小写字母
|
\u
|
大写字母
|
\U
|
非大写字符
|
\_x
|
X
是上面字符中的一个,\_x
比\x
多匹配一个换行符
|
\t
|
<Tab>
|
\n
|
换行符
|
\1 \2 \3
|
第n
个捕获的组\(\)
|
其他
\(\)
|
组捕获
|
\%(\)
|
非捕获组,和\(\)
类似,但不捕获
|
\|
|
分支
|
分享到:
相关推荐
vim正则表达式中包含一系列特殊的元字符,它们具有特定的含义,用于构建复杂的搜索和替换模式。以下是一些基本的元字符及其作用: - `#`:通常用于注释,在vim正则表达式中,它并没有特殊含义。 - `.`:匹配任何...
### VIM正则表达式查找替换详解 #### 一、VIM正则表达式的特性 在探讨具体的查找替换示例之前,我们先来了解一下VIM中正则表达式的几个重要特性,这对于理解和应用正则表达式至关重要。 1. **特殊符号的转义**: ...
9. **实例应用**:正则表达式广泛应用于文本编辑器(如vim、emacs)、编程语言(如JavaScript、Python、Java)和搜索引擎(如grep、findstr)。例如,用于验证邮箱格式、手机号码、提取URL等。 通过《精通正则...
4. **vi/vim**:vi编辑器中的替换命令`:%s/pattern/replacement/g`允许用户使用正则表达式进行全局替换。 5. **Editplus**:在文本编辑器Editplus中,正则表达式可以用于查找和替换功能,提高文本处理效率。 三、...
- **文本编辑器**(如 Vim):提供了基础的正则表达式支持,可用于查找和替换文本。 - **grep**:一个强大的命令行工具,用于搜索文件中的模式。 - **sed**:一个流编辑器,常用于文本文件的自动化处理。 - **awk**...
这个库由Philip Hazel开发,它的设计目标是尽可能地兼容Perl语言中的正则表达式语法和行为。由于其强大的功能、出色的性能以及广泛的语言支持,PCRE在各种软件和系统中被广泛应用。 1. **PCRE特点** - **兼容性**...
在Vim中,你可以使用正则表达式进行查找、替换和编辑操作。例如,`/pattern` 用于向前查找匹配`pattern`的文本,`\=`前缀可以用于执行一个表达式替换,这允许你在替换命令中使用复杂的正则表达式。此外,Vim的可视...
3. 特殊字符:在正则表达式中,一些字符具有特殊含义,如`.`(匹配任意字符,除了换行符)、`^`(匹配行首)、`$`(匹配行尾)等。要匹配这些特殊字符本身,需使用反斜杠`\`进行转义,如`\.`匹配点号,`\^`匹配开始...
- 在正则表达式中,某些字符有特殊含义,如果要匹配这些字符本身,需要在前面加上反斜杠 `\` 进行转义,如`\(`、`\)`、`\*`等。 3. **分组与捕获** - `( )`用于创建分组,可以将多个字符视为一个整体,便于重复...
11. **实际应用**:书中可能涵盖如何在各种编程语言(如Python、Java、JavaScript)中使用正则表达式,以及在文本编辑器(如vim、emacs)或命令行工具(如grep、sed)中的应用。 12. **调试与测试**:介绍如何使用...
- 元字符如 `.`, `*`, `(`, `)` 在正则表达式中具有特殊含义,如果要匹配这些字符本身,需要使用反斜杠 `\` 进行转义,例如 `\.` 匹配实际的句点字符。 3. **分组与引用** - `( )` 用于创建分组,可以捕获和重用...
在Shell脚本中,正则表达式可以与grep、sed、awk等工具结合使用,进行文本的搜索、提取和替换操作。 在Linux系统管理中,Shell脚本与正则表达式的能力不可小觑。熟练运用这些工具,可以极大地提高日常工作的效率,...
- **普通字符**:包括字母、数字等,它们在正则表达式中表示自身。 - **元字符**:具有特殊含义的字符,用于构造更复杂的匹配规则。 ##### POSIX RE的元字符及其含义 1. **用于方括号之外的元字符** - **^**:...
正则表达式广泛应用于各种编程语言和工具中,如grep、sed、awk、Perl以及现代的IDE和文本编辑器(如vim、emacs)。 正则表达式的语法是其核心所在。以下是一些基本的元字符及其含义: 1. `^`:锚点,表示匹配字符...
- **文本编辑器**:如Vim、Sublime Text等,使用正则表达式进行查找和替换。 - **编程语言**:Python、Java、JavaScript等都内置了正则表达式支持。 - **Web开发**:HTML表单验证、URL路由、服务器端脚本处理等。...
Vim中的正则表达式功能很强大,如果能自由运用,则可以完成很多难以想象的操作。下面这篇文章主要给大家介绍了关于Vim中查找替换及正则表达式使用的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来...
9. **在不同环境中的应用**:讲解如何在各种编程语言(如Python、JavaScript、Java等)或工具(如grep、sed、vim等)中使用正则表达式。 10. **高级主题**:可能包括正则表达式的回溯机制、后向引用、条件匹配、非...