正则表达式从字符串中提取两个特定的单词
Regex to extract two specifc words from string
我正在解析一些文件,我本来打算从文件中的某处提取信息,但由于特殊字符而失败了。我需要的词仍然包含在文件名中,但其中还有其他内容。
我假设你可以用正确的正则表达式提取那些,但我做不到。
起源是最后一个和倒数第二个下划线之间的单词。
目的地是 .rds 和最后一个下划线
之间的单词
name1<-"2020-06-15 11_41_40_Magdeburg_Bitterfeld-Wolfen.rds"
name2<-"2020-06-15 11_41_53_Niebüll_Sylt OT Westerland.rds"
name3<-"2020-06-15 11_41_57_Augsburg_Düsseldorf.rds"
我正在分别解析每个文件并提供了三个示例。我希望
name1_orgin<-"Magdeburg"
name1_dest<- "Bitterfeld-Wolfen"
name2_orgin<-"Niebüll"
name2_dest<- "Sylt OT Westerland"
name3_orgin<-"Augsburg"
name3_dest<- "Düsseldorf
您可以使用 str_match
:
stringr::str_match(c(name1, name2, name3), '.*_(.*)_(.*)\.rds')[, -1]
# [,1] [,2]
#[1,] "Magdeburg" "Bitterfeld-Wolfen"
#[2,] "Niebüll" "Sylt OT Westerland"
#[3,] "Augsburg" "Düsseldorf"
我正在解析一些文件,我本来打算从文件中的某处提取信息,但由于特殊字符而失败了。我需要的词仍然包含在文件名中,但其中还有其他内容。
我假设你可以用正确的正则表达式提取那些,但我做不到。 起源是最后一个和倒数第二个下划线之间的单词。 目的地是 .rds 和最后一个下划线
之间的单词name1<-"2020-06-15 11_41_40_Magdeburg_Bitterfeld-Wolfen.rds"
name2<-"2020-06-15 11_41_53_Niebüll_Sylt OT Westerland.rds"
name3<-"2020-06-15 11_41_57_Augsburg_Düsseldorf.rds"
我正在分别解析每个文件并提供了三个示例。我希望
name1_orgin<-"Magdeburg"
name1_dest<- "Bitterfeld-Wolfen"
name2_orgin<-"Niebüll"
name2_dest<- "Sylt OT Westerland"
name3_orgin<-"Augsburg"
name3_dest<- "Düsseldorf
您可以使用 str_match
:
stringr::str_match(c(name1, name2, name3), '.*_(.*)_(.*)\.rds')[, -1]
# [,1] [,2]
#[1,] "Magdeburg" "Bitterfeld-Wolfen"
#[2,] "Niebüll" "Sylt OT Westerland"
#[3,] "Augsburg" "Düsseldorf"