R:正则表达式错误,尽管它在正则表达式101中工作

时间:2018-02-21 08:54:01

标签: r regex grepl

这是我的第一个问题(我还在学习R),如果问题太愚蠢,我会事先道歉。
我试图弄清楚如何制作一个捕获第一个字符串的正则表达式,但不是第二个字符串。

  

字符串< - c(“p1_32_XYX_cancer_1”,“p1_32_XYX_cancer_ttt_1”)

我在regex101上进行了测试,我想出的最好的是它(它适用于regex101)。但是,当我尝试在R中输入它时,会出现以下错误:

  

“(^ P5 [0-9]。* XYX。*癌)(?!* TTT)”
  grep(针,干草堆,......)出错:   无效的正则表达式'mz |(^ p5 [0-9]。* XYX。*癌症)(?!。* ttt)',原因'无效的正则表达式'

抱歉早些时候不清楚,确切的代码是:

  

ctc_gastric_df< - select(m,matches(“mz |(^ p5 [0-9]。* XYX。* cancer)(?!。* ttt)”))

1 个答案:

答案 0 :(得分:0)

我们需要perl = TRUE使OP的代码中的正则表达式无错误地工作

grep("(^p5[0-9].*XYX.*cancer)(?!.*ttt)", strings, perl = TRUE)