R删除第二个下划线后的字符串
R remove string after second underscore
这是一个非常基本的问题,但我找不到明确的答案...如何删除第二个下划线后的所有内容。谢谢!
Please_remove_this_part
期望的输出:
Please_remove
我会将问题描述为提取第二个下划线之前的所有内容:
x = "Please_remove_this_part"
stringr::str_extract(x, "[^_]*_[^_]*")
# [1] "Please_remove"
解释:[^_]
匹配除下划线以外的任何内容,因此 [^_]*_[^_]*
匹配任何非下划线的内容,一个下划线,然后是任何非下划线的内容。
x <- "Please_remove_this_part"
sub("([A-Za-z]+_[A-Za-z]+).*", "\1", x)
[1] "Please_remove"
此 sub
解决方案将第二个下划线之前的所有内容定义为捕获组,并通过替换参数中的反向引用 \1
调用它。
这是一个非常基本的问题,但我找不到明确的答案...如何删除第二个下划线后的所有内容。谢谢!
Please_remove_this_part
期望的输出:
Please_remove
我会将问题描述为提取第二个下划线之前的所有内容:
x = "Please_remove_this_part"
stringr::str_extract(x, "[^_]*_[^_]*")
# [1] "Please_remove"
解释:[^_]
匹配除下划线以外的任何内容,因此 [^_]*_[^_]*
匹配任何非下划线的内容,一个下划线,然后是任何非下划线的内容。
x <- "Please_remove_this_part"
sub("([A-Za-z]+_[A-Za-z]+).*", "\1", x)
[1] "Please_remove"
此 sub
解决方案将第二个下划线之前的所有内容定义为捕获组,并通过替换参数中的反向引用 \1
调用它。