我需要使用grep
查找以G
结尾的所有字符串,但不能在以下字符向量中以STIG
或VÄG
结尾:
test=c("EWASPG","AVOPW","SDAGSTIG","ASDVVÄG","ASDVWE","QSCIUVG","QWSFNJG")
我试过这个但是对于{{1}前面带有字母S
,T
,I
,V
,Ä
的字符串,它返回false当G
前面有完整的词组时,而不是返回false。
G
谢谢!
我知道this post。
答案 0 :(得分:4)
character class始终与单个字符匹配,因此[^(STI)]
将匹配除(
,S
,T
,I
之外的任何字符或)
。
您可以使用negative lookbehind assertion来确保字符串不以某个子字符串结尾,但您需要在R中启用与Perl兼容的正则表达式模式:
grep("(?<!STI|VÄ)G$", test, perl=TRUE, value=TRUE);