我需要检测字符串向量中的某些模式。 关于如何记下某个模式,我有多个可能的变体,因此我将[]与|一起使用,例如“ summari [z | s] e” 除非在这种情况下(包括空格和“-”),否则一切正常。 这些甚至都不是逃脱的字符.. ..我想念什么?
我尝试使用\
转义a<-"..contested - cred.."
b<-"..contested -cred.."
ab<-c(a,b)
grepl("..contested -[| ]",ab)
[1]是否
而我期望a和b都返回TRUE
答案 0 :(得分:0)
我们可能需要。 |
是OR
的元字符。在方括号内,它将按字面意义而不是OR
进行评估。另外,我们可以使用字符在[]
内进行匹配,而无需任何|
grepl("\\.{2}contested [- ]",ab)
#[1] TRUE TRUE
注意:.
也是与任何字符匹配的元字符。因此,需要进行转义(\\.
才能进行字面评估
答案 1 :(得分:0)
[| ]
表示竖线或空格。您想要的是一个空间或什么都不是。在这种情况下,?
表示出现0或1个先前字符。另外请注意,点是元字符,因此请对其进行转义。
grepl("^\\.\\.contested - ?cred\\.\\.$", ab)
## [1] TRUE TRUE