【发布时间】:2018-04-27 16:48:35
【问题描述】:
我有一串以分号分隔的元素,我想查找一个模式是否与字符串中的任何元素匹配:
string <- "CPT1B;CPT1B;CPT1B;CHKB-CPT1B;CPT1B;CPT1B;CPT1B;CPT1B"
我想知道使用哪个正则表达式来匹配任何这些元素,我的意思是,如果任何元素匹配,例如“CPT1B”,我想得到 TRUE,这样做我使用:
grepl(paste("[^;]","CPT1B,"[$;]",sep = ""),string)
TRUE
我使用了“[^;]”和“[$;]”,因为如果任何元素匹配,我想得到 TRUE。
当我尝试匹配“CHKB-CPT1B”时出现问题,因为如果我使用相同的表达式:
grepl(paste("[^;]","CHKB-CPT1B","[$;]",sep = ""),string)
FALSE
我得到了 FALSE,我认为这是由于单词中的连字符,我想知道如何让 grepl 读取带有连字符的单词。
我不想使用“CHKB\-CPT1B”,因为这个模式来自一个可以是连字符和非连字符的迭代器。而且我也不想用“;”分割原始字符串
【问题讨论】: