Regex R-Gsub返回第一场比赛
我想从测试向量中提取12和0。每次我尝试,它要么给我120分,要么给我12分Regex R-Gsub返回第一场比赛,regex,r,Regex,R,我想从测试向量中提取12和0。每次我尝试,它要么给我120分,要么给我12分 TestVector <- c("12:0") gsub("\\b[:numeric:]*",replacement = "\\1", x = TestVector, fixed = F) TestVector一个不涉及使用显式正则表达式的选项是使用strsplit()并拆分冒号上的时间戳: TestVector <- c("12:0") parts <- unlist(strsplit(TestV
TestVector <- c("12:0")
gsub("\\b[:numeric:]*",replacement = "\\1", x = TestVector, fixed = F)
TestVector一个不涉及使用显式正则表达式的选项是使用strsplit()
并拆分冒号上的时间戳:
TestVector <- c("12:0")
parts <- unlist(strsplit(TestVector, ":")))
> parts[1]
[1] "12"
> parts[2]
[1] "0"
TestVector部分[2]
[1] "0"
试试这个
gsub("\\b(\\d+):(\\d+)\\b",replacement = "\\1 \\2", x = TestVector, fixed = F)
正则表达式分解
我认为在R
中没有命名为[:numeric:][/code>的类,但它已命名为class[:digit:][/code>。你可以把它当作
gsub("\\b([[:digit:]]+):([[:digit:]]+)\\b",replacement = "\\1 \\2", x = TestVector)
正如所建议的,一种更简单、更直观的方法是用空间替换:
gsub(":",replacement = " ", x = TestVector, fixed = F)
这可以使用scan
frombase R
scan(text=TestVector, sep=":", what=numeric(), quiet=TRUE)
#[1] 12 0
或使用str\u extract
library(stringr)
str_extract_all(TestVector, "[^:]+")[[1]]
简单的\d+
有什么问题吗?检查这个我不知道,你能举个例子吗?但是,可能会有一个更简洁的方法,取消列表(regmatches(TestVector,gregexpr('\\\(?[0-9,.]+',TestVector))
gsub(\\b(\\d+)(\\d+)\\b,replacement=“\\1\\2”,x=TestVector,fixed=F)
@rock321987,这很好地工作了,把它作为答案,也许还需要解释一下正则表达式
library(stringr)
str_extract_all(TestVector, "[^:]+")[[1]]