我使用了以下代码来删除R字符串中最后一个空格之前的所有字符:gsub(".*\\s", "", "Big Dog")
返回“Dog”,这是完美的。
我怎样才能避免某些模式被删除呢?例如,假设我总是想保留“Big Dog”,那么如果我有字符串“Look at that crazy Big Dog”,运行gsub()
(或其他代码)返回“Big Dog”,并保留Big和Dog之间的空白。在完整代码中,这适用于“Big Dog”的等价物不是动态的,所以硬编码“Big Dog”是可以的。“Big Dog”也总是占据字符串中的最后位置。
2条答案
按热度按时间pexxcrt21#
由于您事先不知道
Dog
,因此可以使用请参阅regex demo。注意
sub
函数的用法,您只需要在字符串中搜索和替换一次。^
-字符串开始.*?
-尽可能少的零个或多个字符((?:\bBig\s+)?\S+)
-第1组:(?:\bBig\s+)?
-整个字Big
(\b
是字边界)和一个或多个空白字符(\s+
)的可选序列\S+
-一个或多个非空白字符$
-字符串结束。\1
替换将组1中的值放回结果中。请参见R demo:
kmbjn2e32#
假设您知道不想在字符串末尾替换的所有单词和短语,您可以使用以下白名单方法: