Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式,用于匹配以字母结尾但不以R中的短语结尾的字符串_Regex_R_Inverse Match - Fatal编程技术网

Regex 正则表达式,用于匹配以字母结尾但不以R中的短语结尾的字符串

Regex 正则表达式,用于匹配以字母结尾但不以R中的短语结尾的字符串,regex,r,inverse-match,Regex,R,Inverse Match,我需要使用grep查找以下字符向量中以G结尾但不以STIG或VÄG结尾的所有字符串: test=c("EWASPG","AVOPW","SDAGSTIG","ASDVVÄG","ASDVWE","QSCIUVG","QWSFNJG") 我尝试了这个方法,但是对于任何带有字母S,T,I,V,G前面的字符串,它都会返回false,而不是在G前面有确切的短语时返回false grep("[^((STI)|(VÄ))]G$", test, value=T) # [1] "EWASPG" "QWSF

我需要使用
grep
查找以下字符向量中以
G
结尾但不以
STIG
VÄG
结尾的所有字符串:

test=c("EWASPG","AVOPW","SDAGSTIG","ASDVVÄG","ASDVWE","QSCIUVG","QWSFNJG")
我尝试了这个方法,但是对于任何带有字母
S
T
I
V
G
前面的字符串,它都会返回false,而不是在
G
前面有确切的短语时返回false

grep("[^((STI)|(VÄ))]G$", test, value=T)

# [1] "EWASPG"  "QWSFNJG"
谢谢

我知道。

A总是匹配单个字符,因此
[^(STI)]
将匹配除
S
T
I
)以外的任何字符。

可以使用确保字符串不以某个子字符串结尾,但需要在R中启用与Perl兼容的正则表达式模式:

grep("(?<!STI|VÄ)G$", test, perl=TRUE, value=TRUE);
grep((?A始终匹配单个字符,因此
[^(STI)]
将匹配除
S
T
I
之外的任何字符)

可以使用确保字符串不以某个子字符串结尾,但需要在R中启用与Perl兼容的正则表达式模式:

grep("(?<!STI|VÄ)G$", test, perl=TRUE, value=TRUE);

grep(“(?在R中,这将是
grep(”)(?非常感谢!R似乎可以很好地处理Tim的代码,而不需要额外的jbaums)。不确定您所指的是哪一个额外的引号。除非您只是一般地引用我的单引号,在这种情况下,它们完全可以与双引号交换。在R中,这将是
grep('(?非常感谢!R似乎可以很好地处理Tim的代码,而不需要额外的jbaums)。不确定您指的是哪一个额外的引号。除非您只是指我的单引号,在这种情况下,它们完全可以与双引号交换。