这是我的第一个问题(我还在学习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)”))
答案 0 :(得分:0)
我们需要perl = TRUE
使OP的代码中的正则表达式无错误地工作
grep("(^p5[0-9].*XYX.*cancer)(?!.*ttt)", strings, perl = TRUE)