Mam to mystring
z ogranicznikiem "_"
. Warunek jest tutaj, jeśli istnieją dwa lub więcej ograniczników, chcę podzielić na drugim ograniczniku i jeśli istnieje tylko jeden separator, chcę podzielić na ".Recal"
i uzyskać result
, jak pokazano poniżej.Podział ciągu z warunkami w R
mystring<-c("MODY_60.2.ReCal.sort.bam","MODY_116.21_C4U.ReCal.sort.bam","MODY_116.3_C2RX-1-10.ReCal.sort.bam","MODY_116.4.ReCal.sort.bam")
wynik
"MODY_60.2" "MODY_116.21" "MODY_116.3" "MODY_116.4"
ciekawe pytanie. Nie wiem, czy istnieje sposób, aby zrobić to za jednym razem. Mogę zhakować to jak 'sub (" (. + _. +) _. + $ "," \\ 1 ", sub (" \\. ReCal. + $ "," ", Mystring))', ale ja "Jestem pewien, że ktoś może to poprawić. – thelatemail
Naśladując logikę w zakresie wyrażeń regularnych, może tak: 'sub (" (? (? =. + _. + _) (. + _. +) _. * | (. +) \\. ReCal. *) "," \\ 1 \\ 2 ", mystring, perl = TRUE)'. – lukeA
Jeśli uda Ci się uzyskać to w jednym regex lub nawet zastosować rozwiązanie @ nongkrong, _please_ przykleja komentarz powyżej kodu, więc twoja przyszła jaźń (lub jakaś osoba, która staje się dozorcą) wie, co próbujesz zrobić. Kilka razy ugryzłem się w siebie, używając "bardzo sprytnego rozwiązania", które moja młodsza jaźń stworzyła, które zajęło całe wieki, aby zapamiętać szczegóły/rozumowanie z tyłu. – hrbrmstr