借助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

我在哪里错过?

最佳答案

这个vim-regex应该可以帮助您:

\v(\w{-}a)@=(\w{-}e)@=(\w{-}i)@=(\w{-}o)@=(\w{-}u)@=\w+



前导\v表示在魔术模式下进行匹配,:h magic详细信息
在vim中,正则表达式的前瞻是(...)\@=:h \@=以获得详细信息

10-06 07:12