【发布时间】:2018-11-08 19:04:24
【问题描述】:
我有一个字符串列表,对于每个字符串,我需要用“_”替换最后一个斜杠之后的所有空格。这是一个最小的可重现示例。
my_list <- list("abc/as 345/as df.pdf", "adf3344/aer4 ffsd.doc", "abc/3455/dfr.xls", "abc/3455/dfr serf_dff.xls", "abc/34 5 5/dfr 345 dsdf 334.pdf")
替换后的结果应该是:
list("abc/as 345/as_df.pdf", "adf3344/aer4_ffsd.doc", "abc/3455/dfr.xls", "abc/3455/dfr_serf_dff.xls", "abc/34 5 5/dfr_345_dsdf_334.pdf")
我想过用正则表达式匹配最后一个斜杠之后的文本,然后用“”替换“_”,但没有找到实现方法。
它会是这样的:
gsub(pattern, "_", my_list),
其中模式将是一个正则表达式,它会说:匹配最后一个斜杠之后的每个空格(列表的每个元素中至少有一个斜杠)。
【问题讨论】:
-
试试
lapply(strsplit(unlist(my_list), "[/]"), function(x) paste(paste(x[-length(x)], collapse="/"), gsub(" ", "_", x[length(x)]), collapse="/"))