如何在 R 中拆分 / 但不拆分 // ?

Tha*_*uys 3 regex split r

说我有这个字符串:

str <- "a//b/c"
Run Code Online (Sandbox Code Playgroud)

期望输出:

c("a//b", "c").
Run Code Online (Sandbox Code Playgroud)

所以我想在 / 上拆分,而不是在 // 上拆分。

我试过的:

按照/sf/answers/512196121/我试过:

  strsplit(split = "[[]^//[]]|/", x = "a//b/c", perl = TRUE)
Run Code Online (Sandbox Code Playgroud)

(对于非 R 用户:需要转义 R 中的特殊字符,因此“[”变为“[[]”,不确定这在所有其他语言中是否常见。)

Wik*_*żew 5

您可以使用

strsplit("a//b/c", "(?<!/)/(?!/)", perl=TRUE)
Run Code Online (Sandbox Code Playgroud)

在线查看R 演示正则表达式演示

(?<!/)/(?!/)模式意味着:

  • (?<!/) - 前面没有紧跟的位置 /
  • /- 一个/字符
  • (?!/) - 没有立即跟随的位置 /