Включение символов в квадратные скобки создает класс символов, соответствующий любому из определенных символов, поэтому [yes]+
соответствует yyyyyyyyy
, eyyyyss
и т. Д.
То, что вы хотите сделать, это сопоставить слово MQRankSum
, =
, а затем любые символы, кроме ;
:
str_extract(nf1$Info,"MQRankSum=[^;]+")
Если вы хотите исключить MQRankSum=
из матча, используйте вид сзади:
str_extract(nf1$Info,"(?<=MQRankSum=)[^;]+")
^^^^^^^^^^^^^^^
Положительный знак (?<=MQRankSum=)
обеспечит наличие текста MQRankSum=
непосредственно слева от текущего местоположения, и только после этого будет соответствовать 1 или более символов, отличных от ;
.