muss hier unbedingt das re-Modul ran?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
htw7448
User
Beiträge: 51
Registriert: Montag 16. April 2007, 10:59
Wohnort: Messel(Hessen)
Kontaktdaten:

Donnerstag 25. Oktober 2007, 14:20

Ich habe folgenden String:

Code: Alles auswählen

string = ", linked_elements=['Md!#:30554', 'Md!#:30556', 'Md!#:30558', 'Md!#:30560', 'Md!#:30548', 'Md!#:30552', 'Md!#:30550'], failed_elements=[], failed_reasons=[], possible_sources=[], possible_src_items=[], priority_linked_elements=['Md!#:30554', 'Md!#:30556', 'Md!#:30558', 'Md!#:30560', 'Md!#:30548', 'Md!#:30552', 'Md!#:30550'], priority_sources=['Punkte (22102007_15.tri), Adapter_004_2', 'Punkte (22102007_15.tri), Adapter_005_2', 'Punkte (22102007_15.tri), Adapter_006_2', 'Punkte (22102007_15.tri), Adapter_007_2', 'Punkte (22102007_15.tri), Adapter_001_2', 'Punkte (22102007_15.tri), Adapter_003_2', 'Punkte (22102007_15.tri), Adapter_002_2'], priority_src_items=['Ud!#:30158 Md!#:30475', 'Ud!#:30158 Md!#:30479', 'Ud!#:30158 Md!#:30483', 'Ud!#:30158 Md!#:30487', 'Ud!#:30158 Md!#:30463', 'Ud!#:30158 Md!#:30471', 'Ud!#:30158 Md!#:30467']"
Interessant sind aus dem String für mich nur die Listen linked_elements und priority_src_items. Die Listenlänge ist dynamisch. Gibt es schon etwas vorgefertigtes um in Strings nach Listen suchen zu können? Mit String Methoden allein komme ich hier nicht weiter :?
BlackJack

Donnerstag 25. Oktober 2007, 15:01

Ist natürlich nicht besonders robust:

Code: Alles auswählen

def extract(line, name):
    name_pos = line.index(name)
    values_start = line.index('[', name_pos) + 1
    values_end = line.index(']', values_start)
    return [value.strip()[1:-1]
            for value in line[values_start:values_end].split(',')]


def main():
    print extract(source, 'linked_elements')
    print extract(source, 'priority_src_items')
Antworten