删除R中符号(连字符)后的空白



我正在尝试删除从字符串中分隔单词的连字符。例如,单词example:";例如";。

a <- "for exam- ple this"

我怎么能加入他们?

我已经尝试使用以下命令删除脚本:

str_replace_all(a, "-", "")

但我得到了这个:

"例如;

它不返回单词united。我也尝试过:str_replace_all(a, "- ", ""),但我一无所获。

因此,我想首先删除连字符后的空白,以获得以下

"例如;

,然后删除连字符。

你能帮我吗?

这里有一个sub选项,其中我们匹配-,后跟零个或多个空格(\s*(,并替换为-

sub("-\s*", "-", a)
#[1] "for exam-ple this"

如果要删除所有空格而不是单个空格,则用gsub替换

gsub("-\s*", "-", a)
str_replace_all(a, "- ", "-")

如果您只是想删除符号后面的空白,那么Ricardo的答案就足够了。如果您想删除连字符后未知数量的空白,请考虑

str_replace_all(a, "- +", "-")
#[1] "for exam-ple this"
b <- "for exam-      ple this"
str_replace_all(b, "- +", "-")
#[1] "for exam-ple this"

编辑——解释

"+"是告诉r如何匹配字符串的内容,也是正则表达式的一部分。"+"具体表示匹配前面的字符(或组/集(1次或多次。你可以在这里找到更多关于正则表达式的信息。

最新更新