包含vim中所有特定字符组合的正则表达式

时间:2016-08-30 12:13:42

标签: regex vim

this帖子的帮助下,我可以搜索包含所有元音字母组合的单词。
正则表达式:

(?=\w*a)(?=\w*e)(?=\w*i)(?=\w*o)(?=\w*u)\w+

匹配示例:

abstemious
education
reputation
facetious

然后我将以下内容更改为vim表达式为
正则表达式:

\(\ze\w\{-}a\)\(\ze\w\{-}e\)\(\ze\w\{-}i\)\(\ze\w\{-}o\)\(\ze\w\{-}u\)\w\+

更改

( to \(
?= to \ze
* to \{-}
+ to \+

但现在它只匹配像

这样的连续出现
abstemious 
facetious

不是education,reputation

我在哪里错过了?

1 个答案:

答案 0 :(得分:7)

这个vim-regex可以帮到你:

\v(\w{-}a)@=(\w{-}e)@=(\w{-}i)@=(\w{-}o)@=(\w{-}u)@=\w+
  • 前导\v表示以非常神奇的模式匹配,:h magic表示详细信息
  • 展望vim正则表达式(...)\@=:h \@=了解详情