借助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 \@=
以获得详细信息