У меня есть строка элементов, разделенных точкой с запятой, и я хочу выяснить, соответствует ли шаблон любому из элементов в строке:
string <- "CPT1B;CPT1B;CPT1B;CHKB-CPT1B;CPT1B;CPT1B;CPT1B;CPT1B"
Я хочу знать, какое регулярное выражение используется для соответствия любому из этих элементов, я имею в виду, я хочу получить TRUE, если какой-либо из элементов соответствует, например, "CPT1B", для этого я использую:
grepl(paste("[^;]","CPT1B,"[$;]",sep = ""),string)
TRUE
Я использовал "[^;]" и "[$;]", потому что я хочу получить TRUE, если какой-либо из элементов совпадает.
Моя проблема возникла, когда я пытаюсь сопоставить с «CHKB-CPT1B», потому что, если я использую то же выражение:
grepl(paste("[^;]","CHKB-CPT1B","[$;]",sep = ""),string)
FALSE
Я получаю ЛОЖЬ, я думаю, что это из-за дефиса в слове, и я хотел бы знать, как заставить grepl читать слово с дефисом как одно слово.
Я не хочу использовать «CHKB \ -CPT1B», потому что этот шаблон будет получен от итератора, который может быть как дефисом, так и не дефисом слов. И я также хотел бы не разбивать исходную строку на ";"