R正则表达式

时间:2014-02-10 09:23:49

标签: regex r backslash

我有一个如下字符串。

testSampe <- "Old:windows\r\nNew:linux\r\n"

我想删除":""\"之间的字符串。

喜欢这个"Old\r\nNew\r\n"

我如何为此构建正则表达式?

我尝试使用正则表达式":.*\\\\"进行gsub功能,但它不起作用。

 gsub(":.*\\\\", "\\\\r", testSampe)

2 个答案:

答案 0 :(得分:4)

> testSampe <- "Old:windows\r\nNew:linux\r\n"
> gsub(":[^\r\n]*", "", testSampe)
[1] "Old\r\nNew\r\n"

答案 1 :(得分:2)

您可以选择一些匹配的不同正则表达式。请参阅falsetru的答案或使用:

rx <- ":[[:alnum:]]*(?=\\r)"

作为gsub的更具可读性的替代方案,请在str_replace_all包中使用stringr

library(stringr)
str_replace_all(testSampe, perl(rx), "")