我有一个列,它有很多行。该列的值类似于
测试数据123-独立,MO 99 *2-5 5PLT
我想写一个str_extract来提取所有的内容,所以输出应该是99 *2-5PLT。
谢谢你的帮助。
发布于 2022-01-18 23:21:21
这将起作用:
a <- "[Testing Data 123-INDEPENDENCE, MO] 99 *2-5PLT"
str_extract(a, "(?<=\\] )(.*)")
[1] "99 *2-5PLT"
在这里,我们使用一个后置查找来查找结束括号(也是尾随空格),然后匹配后面的所有内容:
https://regex101.com/r/Aq9D1p/1
编辑,您还可以执行如下操作:
a %>% str_split_fixed(., "] ", n = 2)
[,1] [,2]
[1,] "[Testing Data 123-INDEPENDENCE, MO" "99 *2-5PLT"
发布于 2022-01-19 01:22:43
也是一个基本R解决方案:
regmatches(a, regexpr("\\[[^[]*\\]\\s+\\K.*", a, perl = TRUE))
"99 *2-5PLT"
发布于 2022-01-19 02:02:11
你可以放下一切直到]
。
在基R中使用sub
-
x <- "[Testing Data 123-INDEPENDENCE, MO] 99 *2-5PLT"
sub('.*\\]\\s+', '', x)
#[1] "99 *2-5PLT"
类似地,对于stringr::str_remove
-
stringr::str_remove(x, '.*\\]\\s+')
https://stackoverflow.com/questions/70763546
复制相似问题