R:正则表达式错误,尽管它在正则表达式 101 中工作
R: Regex error despite it working in regex 101
这是我的第一个问题(我还在学习R),如果这个问题太愚蠢,我提前道歉。
我正在尝试弄清楚如何制作一个捕获第一个字符串的正则表达式,但 而不是 第二个字符串。
strings <- c("p1_32_XYX_cancer_1", "p1_32_XYX_cancer_ttt_1")
我在 regex101 上测试过,我想出的最好的是这个(它适用于 regex101)。但是,当我尝试在 R 中输入它时,出现以下错误:
"(^p5[0-9].*XYX.*cancer)(?!.*ttt)"
Error in grep(needle, haystack, ...) :
invalid regular expression 'mz|(^p5[0-9].*XYX.*cancer)(?!.*ttt)', reason 'Invalid regexp'
抱歉之前不清楚,具体代码是:
ctc_gastric_df <- select(m,matches("mz|(^p5[0-9].*XYX.*cancer)(?!.*ttt)"))
我们需要perl = TRUE
使 OP 代码中的正则表达式正常工作
grep("(^p5[0-9].*XYX.*cancer)(?!.*ttt)", strings, perl = TRUE)
这是我的第一个问题(我还在学习R),如果这个问题太愚蠢,我提前道歉。
我正在尝试弄清楚如何制作一个捕获第一个字符串的正则表达式,但 而不是 第二个字符串。
strings <- c("p1_32_XYX_cancer_1", "p1_32_XYX_cancer_ttt_1")
我在 regex101 上测试过,我想出的最好的是这个(它适用于 regex101)。但是,当我尝试在 R 中输入它时,出现以下错误:
"(^p5[0-9].*XYX.*cancer)(?!.*ttt)"
Error in grep(needle, haystack, ...) : invalid regular expression 'mz|(^p5[0-9].*XYX.*cancer)(?!.*ttt)', reason 'Invalid regexp'
抱歉之前不清楚,具体代码是:
ctc_gastric_df <- select(m,matches("mz|(^p5[0-9].*XYX.*cancer)(?!.*ttt)"))
我们需要perl = TRUE
使 OP 代码中的正则表达式正常工作
grep("(^p5[0-9].*XYX.*cancer)(?!.*ttt)", strings, perl = TRUE)