grep特殊字符

HBa*_*Bat 4 string grep r

我想在下面的向量中找到包含星形字符的元素.

s <- c("A","B","C*","D","E*")
grep("*",s)

[1] 1 2 3 4 5
Run Code Online (Sandbox Code Playgroud)

这不起作用.我可以理解,因为它是一个特殊的角色.
当我在这里阅读时,我决定在明星角色之前使用"\".但这给了我一个错误:

grep("\*",s)
Error: '\*' is an unrecognized escape in character string starting ""\*"
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Jus*_*tin 9

您需要两次转义特殊字符,一次用于R,一次用于正则表达式:

grep('\\*', s)
Run Code Online (Sandbox Code Playgroud)


ags*_*udy 6

另一种选择是使用 fixed=TRUE

grep('*', s,fixed=TRUE)
Run Code Online (Sandbox Code Playgroud)