删除R中字符串中第一个大写字母实例之前的字符

Posted

技术标签:

【中文标题】删除R中字符串中第一个大写字母实例之前的字符【英文标题】:Remove characters preceding first instance of a capital letter in string in R 【发布时间】:2016-10-16 23:09:12 【问题描述】:

我正在尝试删除字符串向量中每个字符串的第一个大写字母实例之前的所有字符:

x <- c(" its client Auto Group",  "itself and Phone Company", ", client Large Bank")

我试过了:

sub('.*?[A-Z]', '', x) 

但是返回:

"uto Group"  "hone Company"   "arge Bank"

我需要它返回:

"Auto Group"    "Phone Company" "Large Bank"

有什么想法吗?

谢谢。

【问题讨论】:

sub("^.*?([A-Z])", "\\1", x) 感谢维克托!您可以添加作为答案以便我接受吗?另外,“\\1”是什么意思? 【参考方案1】:

您需要使用带有反向引用的捕获组:

sub("^.*?([A-Z])", "\\1", x)

这里,

^ - 字符串的开头 .*? - 尽可能少的任何 0+ 个字符 ([A-Z]) - 捕获组 1 捕获将在替换模式中使用 \1 引用的大写 ASCII 字母。

所以,我们通过反向引用恢复我们在结果中捕获的内容。

【讨论】:

以上是关于删除R中字符串中第一个大写字母实例之前的字符的主要内容,如果未能解决你的问题,请参考以下文章

在字符串列表中查找字符串中第一个字母的位置(Python 3)

找出字符串中第一个只出现一次的字母

python学习:找到字符串中第一个只出现一次的字母

正则表达式删除一行中第一个空格出现之前的所有内容?

Java 取出字符串中第一个重复出现的字母

redisawk连续子数组的最大和找到字符串/数组中第一个只出现一次的字母