`

vim正则的非贪婪模式

 
阅读更多

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正则表达式的使用

    `,可以将其转换为非贪婪模式,使得量词尽可能少地匹配字符。 ### 小贴士:快速映射 vim提供了强大的映射功能,例如,可以通过以下映射快速插入括号`()`: ``` cmap ;\\( <Left><Left> ``` 这使得在正则表达式中...

    精通正则表达式

    - 在文本编辑器(如vim、emacs)中,正则表达式常用于查找、替换和多行操作。 - 在Web开发中,正则表达式用于表单验证,确保用户输入的数据格式正确。 9. **效率优化** - 理解并避免回溯,合理使用贪婪与非贪婪...

    pcre正则表达式库

    - **多样性**:PCRE支持多种匹配模式,如贪婪匹配、非贪婪匹配、分支选择、回溯等,提供丰富的元字符和预定义字符类。 - **Unicode支持**:PCRE库可以处理Unicode字符集,允许进行宽字符匹配和分类。 - **嵌套子...

    正则表达式测试软件

    贪婪模式默认尽可能多地匹配,非贪婪模式则尽可能少地匹配,可通过 `?` 改变量词的贪婪性,如 `.*?`。 7. **使用正则表达式测试软件** - 在正则表达式测试软件中,你可以输入正则表达式和测试文本,实时查看匹配...

    正则表达式chm系统教程(一个)

    10. **高级主题**:可能包括正则表达式的回溯机制、后向引用、条件匹配、非贪婪匹配等进阶话题。 通过这个CHM教程,你不仅可以掌握正则表达式的基础,还能提升在实际项目中的应用能力。对于任何想要提高文本处理...

    Best+of+VIM+Tips(译注).pdf

    这里的“<”和“>”分别匹配HTML标签的开始和结束,而“[^>]\+”匹配除“>”以外的一个或多个字符,表示非贪婪模式。 10. VIM的帮助系统: 在VIM中,可以通过输入“:help”命令后跟具体主题来查阅帮助文档。例如,...

    大家来学VIM

    - **贪婪与非贪婪匹配**:默认情况下,`.*`尽可能多地匹配字符,使用`.*?`可实现非贪婪匹配。 #### 十五、折叠功能 - **手动折叠**:使用`zf`创建折叠,使用`zo`展开折叠,使用`zc`关闭折叠。 - **自动折叠**:...

    正则表达式

    - **文本编辑器**:如vim、Emacs、Notepad++等允许使用正则表达式进行搜索和替换。 - **Web开发**:在HTML表单验证、URL路由、服务器端脚本中广泛使用正则表达式。 - **命令行工具**:如Unix/Linux下的`grep`、`...

    正则表达式参考文档揭开正则表达式的神秘面纱

    正则表达式(Regular Expression,简称regex)是用于在文本中匹配特定模式的强大工具,广泛应用于数据验证、搜索与替换、文本分析等多个领域。本文档将深入探讨正则表达式的概念、语法以及常见用法,旨在帮助读者...

    文本处理工具和正则表达式

    - **非贪婪匹配**:使用`?`修饰符,如`.*?`表示尽可能少地匹配。 - **分支选择**:使用`|`来表示选择,如`cat|dog`表示匹配`cat`或`dog`。 - **正向预查**:使用`(?=...)`来表示后面必须跟着的模式,但不包含这部分...

    regular expression

    4. Vim 的可视模式与正则: - 在可视模式下,可以使用 `>` 或 `对选中的行进行向右或向左移动,配合正则可批量调整代码格式。 - `V` 开启行可视模式,`v` 为字符可视模式,`Ctrl + v` 为块可视模式,都可以结合...

    30分钟明白正则

    - 在日常工作中,正则表达式常用于文本编辑器(如vim、emacs)、命令行工具(如grep、sed)以及各种文本处理库。 正则表达式虽然起初可能显得复杂,但随着学习和实践,你会逐渐发现其强大的灵活性和实用性。它能够...

    正则表达式30分钟入门教程

    `:非贪婪模式,尽可能少地匹配字符。 7. **回溯引用** - `\1`、`\2`……:引用前面分组匹配的内容。 8. **正则表达式引擎** - **DFA(确定有限状态自动机)**:简单高效,但不支持所有正则表达式特性。 - **...

    正则表达式:深入理解与应用.zip

    - **文本编辑器**:如vim、Emacs等编辑器提供了强大的正则表达式搜索和替换功能。 - **命令行工具**:如grep、sed、awk等,常用于文本处理和数据分析。 8. **进阶技巧** - **回溯控制**:通过非贪婪量词(`*?`, ...

    vim使用教程

    - **greedy陷阱**:解释贪婪匹配与非贪婪匹配的区别。 #### 十五、把Vim折叠(folding) - **手动折叠**:通过命令行手动创建折叠区域。 - **自动折叠**:根据不同的条件自动折叠代码块。 - **折叠的产生**:通过...

Global site tag (gtag.js) - Google Analytics