我有一個如下所示的字符串。R正則表達式
testSampe <- "Old:windows\r\nNew:linux\r\n"
我要刪除":"
的"\"
之間的字符串。
像這樣"Old\r\nNew\r\n"
。
我該如何構建這個正則表達式?
我試圖用正則表達式gsub函數":.*\\\\"
,它不起作用。
gsub(":.*\\\\", "\\\\r", testSampe)
我有一個如下所示的字符串。R正則表達式
testSampe <- "Old:windows\r\nNew:linux\r\n"
我要刪除":"
的"\"
之間的字符串。
像這樣"Old\r\nNew\r\n"
。
我該如何構建這個正則表達式?
我試圖用正則表達式gsub函數":.*\\\\"
,它不起作用。
gsub(":.*\\\\", "\\\\r", testSampe)
> testSampe <- "Old:windows\r\nNew:linux\r\n"
> gsub(":[^\r\n]*", "", testSampe)
[1] "Old\r\nNew\r\n"
我認爲只應該保留第二個解決方案。 '\ S'將在空格之前停止(ASCII 32)。 – nhahtdh
@nhahtdh,你說得對。根據你的評論我刪除了第一個。謝謝。 – falsetru
감사합니다謝謝 – user2423434
你有幾個不同的正則表達式將匹配的選擇。見falsetru的答案或使用:
rx <- ":[[:alnum:]]*(?=\\r)"
作爲一個更可讀的替代gsub
,在stringr
包中使用str_replace_all
。
library(stringr)
str_replace_all(testSampe, perl(rx), "")
@nhahtdh,除非給出'perl = TRUE',否則返回''Old'''。 – falsetru