如何删除 space 和 R 中特定字符之间的字符

How to remove characters between space and specific character in R

我有一个类似于 this one 的问题,但我不想在两个特定字符之间查找,而是想获取 space 和特定字符之间的文本。在我的例子中,我有这个字符串:

myString <- "This is my string I scraped from the web. I want to remove all instances of a picture. picture-file.jpg. The text continues here. picture-file2.jpg"

但如果我这样做:str_remove_all(myString, " .*jpg) 我最终会得到

[1] "This"

我知道发生的事情是 R 正在寻找 space 的第一个实例并删除 space 和“.jpg”之间的所有内容,但我希望它是第一个 space 紧接在“.jpg”之前。我希望的最终结果如下所示:

[1] "This is my string I scraped from the web. I want to remove all instances of a picture. the text continues here.

注意:我知道可能会出现一个解决方案,它可以满足我的要求,但最终会将两个句点放在一起。我不介意这样的解决方案,因为稍后在我的分析中我将删除标点符号。

您可以使用

str_remove_all(myString, "\S*\.jpg")

或者,如果您还想删除“单词”前的可选空格:

str_remove_all(myString, "\s*\S*\.jpg")

详情:

  • \s* - 零个或多个空格
  • \S* - 零个或多个 non-whitespaces
  • \.jpg - .jpg 子串。

要使其不区分大小写,请在模式部分添加 (?i)"(?i)\s*\S*\.jpg".

如果需要确保jpg后没有单词char,添加单词边界:"(?i)\s*\S*\.jpg\b"