R语言中如何删除字符串最后空格前字符但保留特定末尾序列
保留R语言字符串末尾固定短语的实现方案
你可以通过两种简单方式实现需求,毕竟目标短语Big Dog是固定且始终在字符串末尾:
方法1:正则正向预查替换
利用正则的正向预查特性,匹配目标短语之前的所有内容并替换为空,精准保留末尾的Big Dog:
x <- "Look at that crazy Big Dog" # 启用perl正则支持正向预查 gsub(".*(?=Big Dog)", "", x, perl = TRUE) # 输出:[1] "Big Dog"
正则说明:.*(?=Big Dog)会匹配任意字符(尽可能多)直到Big Dog的起始位置,正向预查(?=...)不会包含目标短语本身,替换后就剩下我们要保留的内容。
方法2:直接截取末尾固定长度字符
因为Big Dog的长度固定(7个字符,包含空格),可以直接从字符串末尾截取对应长度的部分,这种方法不用正则,效率更高:
x <- "Look at that crazy Big Dog" target_phrase <- "Big Dog" # 计算起始位置:总长度减去目标短语长度加1 substr(x, nchar(x) - nchar(target_phrase) + 1, nchar(x)) # 输出:[1] "Big Dog"
后续要更换目标短语的话,只要修改target_phrase变量就行,灵活性拉满。
内容的提问来源于stack exchange,提问作者Village.Idyot
相关产品推荐
相关产品推荐

