【发布时间】:2016-09-20 00:52:28
【问题描述】:
我对 R 很陌生。我试图在 R 中编写一个代码,它可以帮助我转换带有括号的字符串,如下所示:
( 65 97) ( 80 12) ( 82 832) (108 23)
变成这样的格式:
65:97 80:12 82:832 108:23
我想我应该找到每个括号之间的空格位置并将其替换为 : 然后删除括号,但我不知道。有人可以帮忙吗?
【问题讨论】:
标签: r
我对 R 很陌生。我试图在 R 中编写一个代码,它可以帮助我转换带有括号的字符串,如下所示:
( 65 97) ( 80 12) ( 82 832) (108 23)
变成这样的格式:
65:97 80:12 82:832 108:23
我想我应该找到每个括号之间的空格位置并将其替换为 : 然后删除括号,但我不知道。有人可以帮忙吗?
【问题讨论】:
标签: r
您可以使用gsub 与反向引用如下:
gsub("\\( *(\\d+) +(\\d+) *\\)", "\\1:\\2", "( 65 97) ( 80 12) ( 82 832) (108 23)")
# [1] "65:97 80:12 82:832 108:23"
\\( *(\\d+) +(\\d+) *\\) 匹配括号单元,其中两个数字由一个或多个空格分隔。 * 这里是匹配括号和数字之间的可选空格。\\1 和\\2 来引用第一个和第二个捕获组,即两个(\\d+),并在插入冒号的情况下对其进行格式化。【讨论】:
(\\d+),\\( * 和`*\)` 是括号和可选空格的完全匹配。