正则表达式从字符串中提取模式

Regex to extract patterns from string

我有这个字符串

info <-  "/J TOTAL 7/0                      2|/Y TOTAL 118/0                   12"

我如何应用 stringr 包中的 str_extract_all() 使用正确的正则表达式将它们提取到:

  1. 第 1 部分 - ("J TOTAL 7/0", "Y TOTAL 118/0")
  2. 的矢量
  3. 第 2 部分 - ("2", "12")
  4. 的矢量

如有任何帮助,我们将不胜感激!

您可以尝试 strsplitstrcapture 而不是 str_extract_all()

x <- strsplit(info, "|", TRUE)[[1]]
strcapture("^/(.*?) +(\d+)$", x, data.frame(a=character(), b=character()))
#              a  b
#1   J TOTAL 7/0  2
#2 Y TOTAL 118/0 12

另一个创建分隔符的选项,即使用 gsub 将 2 个以上的相邻空白字符替换为 ,,然后使用 read.csvbase R[=15= 读取]

read.csv(text = chartr("|", "\n", gsub("\s{2,}", ",", info)), header = FALSE)
              V1 V2
1   /J TOTAL 7/0  2
2 /Y TOTAL 118/0 12