我尝试使用 Vim 通过 查找/
以特定方式开始和结束的行。具体来说,我会寻找以字符开头>
且末尾没有字符串的行。例如,我想找到此行RNA
>NM_001010867.4 Homo sapiens iron-sulfur cluster assembly factor IBA57 (IBA57),transcript variant 1, mRNA; nuclear gene for mitochondrial product
在搜索中,但找不到此行
>NR_107042.1 Homo sapiens microRNA 8075 (MIR8075), microRNA
我一直在努力寻找解决方案,但一直没能找到。如能得到任何帮助我将不胜感激。
使用:
其中,特定于的负向前瞻运算
\@!
符等于 perl 的。vim
(?!...)
>
因此它的意思是:在行首 ( ) 处进行匹配,前提是^
它后面没有任何数量 ( ) 的字符 ( ),后面跟着行尾 ( )。\@!
\(...\)
*
.
RNA
$
\v
与ery-magic相同,大多数扩展运算符不需要\
前缀:>
(此处在as本身之后启用>
very-magic 将成为字边界运算符)。来自@user10489 的答案是错误的,因为它无法匹配^>.*[^R][^N][^A]$
> RXX
例如或任何行,其最后一个字符是A
或倒数第二个字符是N
或倒数第三个字符是R
或少于 4 个字符。来自@Romyo 的回答没有任何意义,因为它>.*[^(RNA.)][\n]
[^(RNA.)]
匹配除R
、N
、A
、或之外的任何单个字符。.
(
)
/^>.*[^R][^N][^A]$
也可以使用 grep (不带前导
/
):/>.*[^(RNA.)][\n]
在这些行之外
仅选择了“>helloN00”和“>twm0'”
明显地