【问题标题】:Using Gsub to capture the first letter after a colon : and transform it into uppercase使用 Gsub 捕获冒号后的第一个字母 : 并将其转换为大写
【发布时间】:2017-12-05 04:57:06
【问题描述】:

我需要捕获冒号后的第一个字母 : 并将其转换为大写。我的意见是:

ID1423:Bellatorias obiri           18 Aug 2006
ID2533:Caretta caretta             16 Jul 2000
ID342:Cyclodomorphus praealtus     24 Dec 2009
ID8777:Dermochelys coriacea         8 Jan 2009
ID922:Egernia stokesii badia       16 Jul 2000

我使用的代码是 reptiledata

我得到这样的输出:

> reptiledata
[1] "c(:1, :1, :2, 8, :1, :1, :1, :1, :1, :1, :1, :2, 4, :1, :1, :1)"  
[2] "c(2, 6, 3, 5, 6, 6, 6, 6, 6, 6, 6, 4, 1, 2, 6, 6)"                

etc...

我需要一个通用的 gsub 代码,它将冒号后面的许多首字母字符转换为大写字母,而不仅仅是显示的那些。感谢您的帮助!

【问题讨论】:

  • @tripleee 是 R,让我编辑标签。

标签: r regex gsub


【解决方案1】:

尝试在 Perl 模式下使用 gsub 和大写替换修饰符 \U

gsub(":([A-Za-z])", ":\\U\\1", str, perl=TRUE)

这会将任何冒号后跟单个字母的冒号替换为冒号后跟该字母的大写版本。如果您发现它在不应修改的文本上触发,我们可以使此模式更加具体。

Demo

【讨论】:

  • 您好,非常感谢您的帮助。当我输入 >reptiledata
  • @KiwiPower No...标志是perl=TRUE
  • reptiledata
  • 那你的数据有问题,或者不是你给我们看的。看看你是否可以用其他数据编辑我的演示并让它崩溃。然后把链接贴在这里,我可以看看。
  • 您的链接已损坏,这不是我要求的。给我一个可重复的小例子,我的答案失败了,或者如果没有,则将您的问题更改为实际要求。
猜你喜欢
  • 1970-01-01
  • 2021-09-12
  • 2021-09-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多