如何删除 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"
我有一个类似于 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"