R - gsub():尝试提取“.”和“_”之间的字符串时出现问题
R - gsub() : trouble when trying to extract a string between ". " and "_"
R gsub() 语法对我来说太难了!你能帮我从“16.DA VINCI_RETOUR”中提取,例如"DA VINCI"吗?
我已经尝试过 gsub("_.+$", "", x)
但它只是删除了“_”之后的内容,我还想删除“.”之前的内容!
非常感谢您的帮助!
这是一个带有捕获组的选项,用于匹配单词 (\w+
) 后跟 space 和另一个单词作为一个组的模式,并替换为捕获组的反向引用 (\1
)
sub("^\d+\.\s+(\w+\s+\w+)_.*", "\1", str1)
数据
str1 <- "16. DA VINCI_RETOUR"
使用 strsplit
的替代方案:
gsub("\d+\.\s","",
strsplit(the_string,"_")[[1]][1])
[1] "DA VINCI"
数据:
the_string <- "16. DA VINCI_RETOUR"
.*
取开头的所有内容,\.
匹配 .
,(.*) 匹配所有内容,直到并将其存储在 \1
_
和.*
删除其余部分。
x <- "16. DA VINCI_RETOUR"
sub(".*\. (.*)_.*", "\1", x)
#[1] "DA VINCI"
x <- "7. TILLEUL_RETOUR"
sub(".*\. (.*)_.*", "\1", x)
#[1] "TILLEUL"
R gsub() 语法对我来说太难了!你能帮我从“16.DA VINCI_RETOUR”中提取,例如"DA VINCI"吗?
我已经尝试过 gsub("_.+$", "", x)
但它只是删除了“_”之后的内容,我还想删除“.”之前的内容!
非常感谢您的帮助!
这是一个带有捕获组的选项,用于匹配单词 (\w+
) 后跟 space 和另一个单词作为一个组的模式,并替换为捕获组的反向引用 (\1
)
sub("^\d+\.\s+(\w+\s+\w+)_.*", "\1", str1)
数据
str1 <- "16. DA VINCI_RETOUR"
使用 strsplit
的替代方案:
gsub("\d+\.\s","",
strsplit(the_string,"_")[[1]][1])
[1] "DA VINCI"
数据:
the_string <- "16. DA VINCI_RETOUR"
.*
取开头的所有内容,\.
匹配 .
,(.*) 匹配所有内容,直到并将其存储在 \1
_
和.*
删除其余部分。
x <- "16. DA VINCI_RETOUR"
sub(".*\. (.*)_.*", "\1", x)
#[1] "DA VINCI"
x <- "7. TILLEUL_RETOUR"
sub(".*\. (.*)_.*", "\1", x)
#[1] "TILLEUL"