在字符串中查找带有空格和减号的替代模式
look in string for alternative patterns with spaces and minus symbols
我需要检测字符串向量中的特定模式。
关于如何写下特定模式,我有多种可能的变体,所以我将 [] 与 | 一起使用,例如 "summari[z|s]e"
一切正常,除了在这种情况下,当涉及空格和“-”时。
那些甚至都不是要转义的字符所以..
..我错过了什么?
我试过用\
转义
a<-"..contested - cred.."
b<-"..contested -cred.."
ab<-c(a,b)
grepl("..contested -[| ]",ab)
[1] 对错
而我希望 a 和 b 都为 return TRUE
我们可能需要。 |
是 OR
的元字符。在方括号内,它将按字面意思计算,而不是 OR
。此外,我们可以使用 []
中的字符来匹配,而无需任何 |
grepl("\.{2}contested [- ]",ab)
#[1] TRUE TRUE
注意:.
也是一个匹配任何字符的元字符。所以,它需要转义(\.
)来评估字面意思
[| ]
表示竖线或 space。您想要的是 space 或什么都不是。在这种情况下,?
表示前一个字符出现 0 次或 1 次。另请注意,点是一个元字符,因此请将其转义。
grepl("^\.\.contested - ?cred\.\.$", ab)
## [1] TRUE TRUE
我需要检测字符串向量中的特定模式。 关于如何写下特定模式,我有多种可能的变体,所以我将 [] 与 | 一起使用,例如 "summari[z|s]e" 一切正常,除了在这种情况下,当涉及空格和“-”时。 那些甚至都不是要转义的字符所以.. ..我错过了什么?
我试过用\
转义a<-"..contested - cred.."
b<-"..contested -cred.."
ab<-c(a,b)
grepl("..contested -[| ]",ab)
[1] 对错
而我希望 a 和 b 都为 return TRUE
我们可能需要。 |
是 OR
的元字符。在方括号内,它将按字面意思计算,而不是 OR
。此外,我们可以使用 []
中的字符来匹配,而无需任何 |
grepl("\.{2}contested [- ]",ab)
#[1] TRUE TRUE
注意:.
也是一个匹配任何字符的元字符。所以,它需要转义(\.
)来评估字面意思
[| ]
表示竖线或 space。您想要的是 space 或什么都不是。在这种情况下,?
表示前一个字符出现 0 次或 1 次。另请注意,点是一个元字符,因此请将其转义。
grepl("^\.\.contested - ?cred\.\.$", ab)
## [1] TRUE TRUE