正则表达式从字符串中提取模式
Regex to extract patterns from string
我有这个字符串
info <- "/J TOTAL 7/0 2|/Y TOTAL 118/0 12"
我如何应用 stringr
包中的 str_extract_all()
使用正确的正则表达式将它们提取到:
- 第 1 部分 -
("J TOTAL 7/0", "Y TOTAL 118/0")
的矢量
- 第 2 部分 -
("2", "12")
的矢量
如有任何帮助,我们将不胜感激!
您可以尝试 strsplit
和 strcapture
而不是 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.csv
从 base 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
我有这个字符串
info <- "/J TOTAL 7/0 2|/Y TOTAL 118/0 12"
我如何应用 stringr
包中的 str_extract_all()
使用正确的正则表达式将它们提取到:
- 第 1 部分 -
("J TOTAL 7/0", "Y TOTAL 118/0")
的矢量
- 第 2 部分 -
("2", "12")
的矢量
如有任何帮助,我们将不胜感激!
您可以尝试 strsplit
和 strcapture
而不是 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.csv
从 base 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