teststring <- c("ENSG00032423", "ENSG00032411234|ENSMUS000124124", "ENSMUS00068967832|ENSG00045345112",
"ENSG00032411234|ENSG000865852297",
"ENSMUS00068967832|ENSG00045345112|ENSR00072699324",
"ENSMUS00068967832|ENSR000124124124|ENSG00045345112")
gsub(
pattern = "(?:(?<![^|])|\\|(?=[^|]*$))(?!ENSG)[^|]*\\|?",
replacement = "",
x = teststring,
perl=TRUE
)
dGVzdHN0cmluZyA8LSBjKCJFTlNHMDAwMzI0MjMiLCAiRU5TRzAwMDMyNDExMjM0fEVOU01VUzAwMDEyNDEyNCIsICJFTlNNVVMwMDA2ODk2NzgzMnxFTlNHMDAwNDUzNDUxMTIiLAoiRU5TRzAwMDMyNDExMjM0fEVOU0cwMDA4NjU4NTIyOTciLCAgCiJFTlNNVVMwMDA2ODk2NzgzMnxFTlNHMDAwNDUzNDUxMTJ8RU5TUjAwMDcyNjk5MzI0IiwKIkVOU01VUzAwMDY4OTY3ODMyfEVOU1IwMDAxMjQxMjQxMjR8RU5TRzAwMDQ1MzQ1MTEyIikKCmdzdWIoCiAgIHBhdHRlcm4gPSAiKD86KD88IVtefF0pfFxcfCg/PVtefF0qJCkpKD8hRU5TRylbXnxdKlxcfD8iLAogICByZXBsYWNlbWVudCA9ICIiLAogICB4ID0gdGVzdHN0cmluZywKICAgcGVybD1UUlVFCikK