匹配模式,只要它不包含特定字符串

Par*_*gue 2 regex r regex-lookarounds

假设我有以下字符串:

quiz.1.player.chat_resultspartner_quiz.1.player.chat_results

我有成百上千个这样的字符串,唯一的区别是一个以“ partner”为前缀,而另一个则没有。我正在尝试匹配一个而不是另一个。

我要匹配的特定模式如下所示:

index <- grep('^(quiz.)[1-5]{1}.player.chat_results', names(data))
Run Code Online (Sandbox Code Playgroud)

但这将匹配两个字符串。我猜我必须像这样使用一些负面的前瞻:

^((?!partner).) 
Run Code Online (Sandbox Code Playgroud)

但是我不确定在哪里使用它。

asa*_*ica 7

我将回答您的标题问题,因为这对于其他人找到此问题最有用。

如何匹配包含给定模式的字符串?容易,匹配模式并将其反转。

index <- grep('^partner', names(data), invert = TRUE)
Run Code Online (Sandbox Code Playgroud)