R 在带有正则表达式的数字之间插入分隔符
我有一个20位数的号码。类似于:R 在带有正则表达式的数字之间插入分隔符,r,regex,regexp-replace,R,Regex,Regexp Replace,我有一个20位数的号码。类似于:000001001520081000000 但是我必须把它转到00000100-15.2008.1.00.0000。在七个数字之后,我必须插入一个-。然后,在2之后,我插入一个点。然后,在四,一和两个数字之后 我试图通过以下方式找到号码:d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d 然后转换为\d\d\d\d\d\d\d-\d\d\d\d\d\d\d\d\d\d\d,但它不起作用 然后,我真的不知道该怎么办。我正在使用R,我尝试了
000001001520081000000
但是我必须把它转到00000100-15.2008.1.00.0000
。在七个数字之后,我必须插入一个-
。然后,在2之后,我插入一个点。然后,在四,一和两个数字之后
我试图通过以下方式找到号码:d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d\d
然后转换为\d\d\d\d\d\d\d-\d\d\d\d\d\d\d\d\d\d\d
,但它不起作用
然后,我真的不知道该怎么办。我正在使用R,我尝试了grep
(\d{7})(\d{2})(\d{4})(\d)(\d{2})(\d{4})
通过在每个间隔周围放置捕获组,可以使用gsub
在匹配之间插入值
gsub(
“(\\d{7})(\\d{2})(\\d{4})(\\d)(\\d{2})(\\d{4})”,
"\\1-\\2,\\3,\\4,\\5,\\6",
"000001001520081000000",
perl=TRUE
)
[1]“0000010-015200,8,1000000”
(\d{7})(\d{2})(\d{4})(\d)(\d{2})(\d{4})
通过在每个间隔周围放置捕获组,可以使用gsub
在匹配之间插入值
gsub(
“(\\d{7})(\\d{2})(\\d{4})(\\d)(\\d{2})(\\d{4})”,
"\\1-\\2,\\3,\\4,\\5,\\6",
"000001001520081000000",
perl=TRUE
)
[1]“0000010-015200,8,1000000”
tmpprint
调用在这里实际上没有任何作用,它是多余的。@KonradRudolph I。。。我不知道。编辑相应的答案!print
调用实际上在这里什么都不做,它是多余的。@KonradRudolph I。。。我不知道。编辑相应的答案!
tmp <- as.character("000001001520081000000")
tmp2 <- paste0(substr(tmp, 1, 8),
"-",
substr(tmp, 9, 10),
".",
substr(tmp, 11, 14),
".",
substr(tmp, 15, 15),
".",
substr(tmp, 16, 17),
".",
substr(tmp, 18, nchar(tmp)))
tmp2