r - 在以大写字母开头的第一个单词后添加逗号
问题描述
正如标题所说。我有一堆名字,我需要在第一个以大写字母开头的单词后添加一个逗号。
一个例子:
txt <- c( "de Van-Smith J", "van der Smith G.H.", "de Smith JW", "Smith JW")
结果应该是:
[1] "de Van-Smith, J" "van der Smith, G.H." "de Smith, JW" "Smith, JW"
我主要一直在尝试使用gsub()
and stringr::str_replace()
,但我正在努力使用正则表达式,任何建议都将不胜感激。
解决方案
您可以使用 -
sub("([A-Z][\\w-]+)", "\\1,", txt, perl = TRUE)
#[1] "de Van-Smith, J" "van der Smith, G.H." "de Smith, JW" "Smith, JW"
where([A-Z][\\w-]+)
捕获以大写字母开头并且后面有-
或任意数量的单词字符的单词。
推荐阅读
- cuda - 每条指令的时钟周期数 CUDA
- matlab - 图像处理一般问题和术语
- angular - 每个接收消息的角度 mqtt 更新值
- cross-validation - R xgboost xgb.cv pred 值:最佳迭代还是最终迭代?
- netsuite - NetSuite - 如何添加新的基础货币?
- unit-testing - 如何强制 Azure+Nunit 上的测试并行化?
- swift - 如何在主 App 结构中初始化 EnviromentObject?
- sql-server - 为 UNION 重命名 JSON 列
- java - 使用最低数量的硬币存储总硬币价值?
- c# - 如何使用 AJAX 填充 DIV 并使其可见