R-用方括号格式化字符串,并在其中添加冒号

jua*_*ang 5 r

我是R的新手。我试图在R中提供一个代码,该代码可以帮助我转换带有方括号的字符串,例如以下字符串:

( 65   97) ( 80   12) ( 82  832) (108   23) 
Run Code Online (Sandbox Code Playgroud)

变成这样的格式:

65:97 80:12 82:832 108:23
Run Code Online (Sandbox Code Playgroud)

我想我应该找到每个方括号之间的空间位置,并用:代替,然后再删除方括号,但是我不知道如何。有人可以帮忙吗?

Psi*_*dom 2

您可以使用gsub反向引用,如下所示:

gsub("\\( *(\\d+) +(\\d+) *\\)", "\\1:\\2", "( 65 97) ( 80 12) ( 82 832) (108 23)")

# [1] "65:97 80:12 82:832 108:23"
Run Code Online (Sandbox Code Playgroud)
  • \\( *(\\d+) +(\\d+) *\\)匹配括号单元,其中有两个数字,并用一个或多个空格分隔。*这里是匹配括号和数字之间的可选空格。
  • 在替换部分,您可以使用反向引用\\1并\\2引用第一个和第二个捕获组(即两个)(\\d+)并使用插入的冒号对其进行格式化。