vim中\{-}与*?相同
所以vim的非贪婪模式为 .\{-}相当于其他的.*?
:set magic " 设置magic :set nomagic " 取消magic :h magic " 查看帮助
- magic (\m):除了 $ . * ^ 之外其他元字符都要加反斜杠。
- nomagic (\M):除了 $ ^ 之外其他元字符都要加反斜杠。
-
这个设置也可以在正则表达式中通过 \m \M 开关临时切换。 \m 后面的正则表达式会按照 magic 处理,\M 后面的正则表达式按照 nomagic 处理, 而忽略实际的magic设置。
例如:
/\m.* # 查找任意字符串 /\M.* # 查找字符串 .* (点号后面跟个星号)
另外还有更强大的 \v 和 \V。
- \v (即 very magic 之意):任何元字符都不用加反斜杠
- \V (即 very nomagic 之意):任何元字符都必须加反斜杠
例如:
/\v(a.c){3}$ # 查找行尾的abcaccadc /\m(a.c){3}$ # 查找行尾的(abc){3} /\M(a.c){3}$ # 查找行尾的(a.c){3} /\V(a.c){3}$ # 查找任意位置的(a.c){3}$
默认设置是 magic,vim也推荐大家都使用magic的设置,在有特殊需要时,直接通过 \v\m\M\V 即可。
本文下面使用的元字符都是 magic 模式下的。
vim的量词与perl相比一点也不逊色。
vim | Perl | 意义 |
* | * | 0个或多个(匹配优先) |
\+ | + | 1个或多个(匹配优先) |
\? 或 \= | ? | 0个或1个(匹配优先),\?不能在 ? 命令(逆向查找)中使用 |
\{n,m} | {n,m} | n个到m个(匹配优先) |
\{n,} | {n,} | 最少n个(匹配优先) |
\{,m} | {,m} | 最多m个(匹配优先) |
\{n} | {n} | 恰好n个 |
\{-n,m} | {n,m}? | n个到m个(忽略优先) |
\{-} | *? | 0个或多个(忽略优先) |
\{-1,} | +? | 1个或多个(忽略优先) |
\{-,1} | ?? | 0个或1个(忽略优先) |
相关推荐
`,可以将其转换为非贪婪模式,使得量词尽可能少地匹配字符。 ### 小贴士:快速映射 vim提供了强大的映射功能,例如,可以通过以下映射快速插入括号`()`: ``` cmap ;\\( <Left><Left> ``` 这使得在正则表达式中...
- 在文本编辑器(如vim、emacs)中,正则表达式常用于查找、替换和多行操作。 - 在Web开发中,正则表达式用于表单验证,确保用户输入的数据格式正确。 9. **效率优化** - 理解并避免回溯,合理使用贪婪与非贪婪...
- **多样性**:PCRE支持多种匹配模式,如贪婪匹配、非贪婪匹配、分支选择、回溯等,提供丰富的元字符和预定义字符类。 - **Unicode支持**:PCRE库可以处理Unicode字符集,允许进行宽字符匹配和分类。 - **嵌套子...
贪婪模式默认尽可能多地匹配,非贪婪模式则尽可能少地匹配,可通过 `?` 改变量词的贪婪性,如 `.*?`。 7. **使用正则表达式测试软件** - 在正则表达式测试软件中,你可以输入正则表达式和测试文本,实时查看匹配...
10. **高级主题**:可能包括正则表达式的回溯机制、后向引用、条件匹配、非贪婪匹配等进阶话题。 通过这个CHM教程,你不仅可以掌握正则表达式的基础,还能提升在实际项目中的应用能力。对于任何想要提高文本处理...
这里的“<”和“>”分别匹配HTML标签的开始和结束,而“[^>]\+”匹配除“>”以外的一个或多个字符,表示非贪婪模式。 10. VIM的帮助系统: 在VIM中,可以通过输入“:help”命令后跟具体主题来查阅帮助文档。例如,...
- **贪婪与非贪婪匹配**:默认情况下,`.*`尽可能多地匹配字符,使用`.*?`可实现非贪婪匹配。 #### 十五、折叠功能 - **手动折叠**:使用`zf`创建折叠,使用`zo`展开折叠,使用`zc`关闭折叠。 - **自动折叠**:...
- **文本编辑器**:如vim、Emacs、Notepad++等允许使用正则表达式进行搜索和替换。 - **Web开发**:在HTML表单验证、URL路由、服务器端脚本中广泛使用正则表达式。 - **命令行工具**:如Unix/Linux下的`grep`、`...
正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索与替换、文本分析等多个领域。本文档将深入探讨正则表达式的概念、语法以及常见用法,旨在帮助读者...
- **非贪婪匹配**:使用`?`修饰符,如`.*?`表示尽可能少地匹配。 - **分支选择**:使用`|`来表示选择,如`cat|dog`表示匹配`cat`或`dog`。 - **正向预查**:使用`(?=...)`来表示后面必须跟着的模式,但不包含这部分...
4. Vim 的可视模式与正则: - 在可视模式下,可以使用 `>` 或 `对选中的行进行向右或向左移动,配合正则可批量调整代码格式。 - `V` 开启行可视模式,`v` 为字符可视模式,`Ctrl + v` 为块可视模式,都可以结合...
- 在日常工作中,正则表达式常用于文本编辑器(如vim、emacs)、命令行工具(如grep、sed)以及各种文本处理库。 正则表达式虽然起初可能显得复杂,但随着学习和实践,你会逐渐发现其强大的灵活性和实用性。它能够...
`:非贪婪模式,尽可能少地匹配字符。 7. **回溯引用** - `\1`、`\2`……:引用前面分组匹配的内容。 8. **正则表达式引擎** - **DFA(确定有限状态自动机)**:简单高效,但不支持所有正则表达式特性。 - **...
- **文本编辑器**:如vim、Emacs等编辑器提供了强大的正则表达式搜索和替换功能。 - **命令行工具**:如grep、sed、awk等,常用于文本处理和数据分析。 8. **进阶技巧** - **回溯控制**:通过非贪婪量词(`*?`, ...