【问题标题】:R - format string with brackets and add colon into itR - 用括号格式化字符串并在其中添加冒号
【发布时间】: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


    【解决方案1】:

    您可以使用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+) 和 (\\d+) ?\\ 对吗?
    • 我应该使用`+`,因为它保证两个数字之间有空格。是的,它分隔了两个捕获组(\\d+)\\( * 和`*\)` 是括号和可选空格的完全匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-24
    • 2013-04-02
    • 2021-11-25
    相关资源
    最近更新 更多