Cześć, mam następujący output: 1 1J5A RR0051GAGGAAACUC(((....)))A2351 2360 X-Ray DifractionRIBOSOME2002-03-063.51
. Chce, by był przedstawiony w następującej formie 1 1J5A RR0051GAGGAAACUC (((....))) A 2351 2360 X-Ray Difraction RIBOSOME 2002-03-06 3.5 1
W jaki sposób mogę najłatwiej to przetworzyć w taką postać?
- Rejestracja:ponad 10 lat
- Ostatnio:ponad 6 lat
- Postów:26
0

- Rejestracja:około 22 lata
- Ostatnio:około 2 godziny
- Postów:6685
0
import re
tekst = " 1 1J5A RR0051GAGGAAACUC(((....)))A2351 2360 X-Ray DifractionRIBOSOME2002-03-063.51"
#cel:
# 1 1J5A RR0051GAGGAAACUC (((....))) A 2351 2360 X-Ray Difraction RIBOSOME 2002-03-06 3.5 1
result = re.findall(r"( \d)\s+?(.+?)\s+(.+?)(\(\(\(.+?\)\)\))(.)(.+?)\s(.+?)\s(.+?)\s([A-Z][a-z]+)([A-Z]+)(\d\d\d\d-\d\d-\d\d)(\d+?\.\d+?)(\d)", tekst)
print (" ".join(result[0]))
edytowany 1x, ostatnio: Spine
Tepedete
ok, dla tego przypadku działa, ale jeżeli już mam więcej linii jak np tutaj http://wklej.org/id/2507326/ to pojawia się problem z wyjściem poza zakres listy

Spine
dałeś konkretny przypadek, to napisałem wyrażenie dla konkretnego przypadku ;) Potem zerknę na link...
Zarejestruj się i dołącz do największej społeczności programistów w Polsce.
Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.