如何删除R中两个特定模式之间的字母?
例如
a= "a#g abcdefgtdkfef_jpg>pple"
Run Code Online (Sandbox Code Playgroud)
我想删除#g和之间的所有字母jpg>
a1="apple"
Run Code Online (Sandbox Code Playgroud)
我试图找到一些功能,stringr但我不能
Ric*_*ven 13
无需为此操作加载包.您可以使用基本R功能sub.它用于匹配正则表达式的第一次出现.
a <- "a#g abcdefgtdkfef_jpg>pple"
sub("#g.*jpg>", "", a)
# [1] "apple"
Run Code Online (Sandbox Code Playgroud)
#g 火柴 "#g".*匹配除\n(零次或多次)之外的任何字符jpg> 火柴 "jpg>"所以在这里我们将删除所有内容#g,包括最新内容jpg>
关于你的评论
我试图在stringR中找到一些函数,但我不能
它实际上是拼写的stringr(区分大小写).你可以用str_replace.
library(stringr)
str_replace(a, "#g.*jpg>", "")
# [1] "apple"
Run Code Online (Sandbox Code Playgroud)
添加到前面的回复中,如果您使用看起来像 的字符串"a#g abcdefgtdkfef_jpg>pple ; #__something_else___jpg>",其中一些方法将使用类似 的表达式对整个字符串进行子集"#.*jpg>",并且您将得到一个空字符串作为结果。为了避免这种情况,您可以使用 R 正则表达式"#[^jpg>]+jpg>",它允许您更有选择性地匹配模式。
| 归档时间: |
|
| 查看次数: |
5827 次 |
| 最近记录: |