grep with $ in string

apr*_*ian 2 regex r

在R中如何grep具有$ in字符串的内容.在下面这个例子我需要grep字符串"NB6106 $ MU-MU.rma"

x<-c("NB6106$MU-MU.rma", "NB610634$MU-MU.rma")

x[grep(pattern="*6106$*.rma", x = x)] #does not work
Run Code Online (Sandbox Code Playgroud)

Wik*_*żew 6

你可以用

x<-c("NB6106$MU-MU.rma", "NB610634$MU-MU.rma")
x[grep(pattern="6106\\$.*\\.rma", x = x)]
Run Code Online (Sandbox Code Playgroud)

参见R演示

细节

  • 6106\\$- 6106$子串
  • .* - 任何0+字符
  • \\.rma- .rma子串

如果你打算确保你没有grep 11116106$...rma,你可以使用

"(^|\\D)6106\\$.*\\.rma$"
Run Code Online (Sandbox Code Playgroud)

其中(^|\\D)匹配字符串(^)或(|)的开头是非数字的char(\D),$最后确保字符串的结尾紧随其后.rma.