Regex 为什么vim中的重复量词比指定的副本匹配*少*?
因此,我有一个这样的搜索:Regex 为什么vim中的重复量词比指定的副本匹配*少*?,regex,vim,Regex,Vim,因此,我有一个这样的搜索:\v(\\us{-1,}[^]+){24}.(这是一个更大的正则表达式的一部分,但它应该基本上匹配句点之前的前24个单词。) 最后一句话是匹配的,肯定不是24个单词长。我做错了什么,在这里 作为参考,正在构造的整个正则表达式如下所示: \v(%^|\.)@<=(\_[^[:alnum:]]{-1,}[^ ]+){-1,} ... ((\_\s{-1,}([^ ]+)\_\s*(\(\_[^\)]*\d{4}\))?){24}\_\s*\.)@= 在Vi
\v(\\us{-1,}[^]+){24}.
(这是一个更大的正则表达式的一部分,但它应该基本上匹配句点之前的前24个单词。)
最后一句话是匹配的,肯定不是24个单词长。我做错了什么,在这里
作为参考,正在构造的整个正则表达式如下所示:
\v(%^|\.)@<=(\_[^[:alnum:]]{-1,}[^ ]+){-1,} ...
((\_\s{-1,}([^ ]+)\_\s*(\(\_[^\)]*\d{4}\))?){24}\_\s*\.)@=
在Vim中,
\v(%^ |\)@即使在\v
模式下,您不需要在某些{n}
前面使用反斜杠吗?什么是\s{-1,}
?这并不能直接帮助你解决问题,但作为一个一般性的建议,我想说,如果你的正则表达式开始变得比屏幕宽度大,我觉得也许是时候把问题分解成更小的部分(可能只是更小的正则表达式)…哦,@ruepsmoker,有六种更好的方法可以做到这一点(正如任何几乎涉及regexen的解决方案通常都是如此:P
);它最初是一种不明智的牦牛剃须……但是,据我所知,它应该是有效的。/=
\v(%^|\.)@<=(\_[^[:alnum:]]{-1,}[^ ]+){-1,} ...
((\_\s{-1,}([^ ]+)\_\s*(\(\_[^\)]*\d{4}\))?){24}\_\s*\.)@=