I,d like to change several strings in vector. In my case, I have in all.images object:
all.images <-c("S2A2A_20160615_124_AguaSumidaPR001120160629_BOA_10.tif",
"S2A2A_20160705_124_AguaSumidaPR0010120160629_BOA_10.tif",
"S2A2A_20160712_081_AguaSumidaPR001120160629_BOA_10.tif",
"S2A2A_20170501_124_AguaSumidaPR001120170427_BOA_10.tif",
"S2A2A_20170508_081_AguaSumidaPR001120170427_BOA_10.tif")
and I'd like in new object all.images.new the output:
all.images.new
"AguaSumida_PR001_1_2016-06-29_20160615_124",
"AguaSumida_PR001_10_2016-06-29_20160705_124",
"AguaSumida_PR001_1_2016-06-29_20160712_081",
"AguaSumida_PR001_1_2017-04-27_20170501_124",
"AguaSumida_PR001_1_2017-04-27_20170508_081"
Please, any help with it?
CodePudding user response:
Using sub to capture groups and replace with the backrefernce of the capture groups rearranged
sub("^\\w _(\\d )_(\\d )_([A-Za-z] )([A-Z]{2}\\d{3})(\\d)(\\d{4})(\\d{2})(\\d )_.*",
"\\3_\\4_\\5_\\6-\\7-\\8_\\1_\\2", all.images)
-output
[1] "AguaSumida_PR001_1_2016-06-29_20160615_124"
[2]"AguaSumida_PR001_0_1201-60-629_20160705_124"
[3]"AguaSumida_PR001_1_2016-06-29_20160712_081"
[4] "AguaSumida_PR001_1_2017-04-27_20170501_124"
[5]"AguaSumida_PR001_1_2017-04-27_20170508_081"
