Seite 1 von 1

muss hier unbedingt das re-Modul ran?

Verfasst: Donnerstag 25. Oktober 2007, 14:20
von htw7448
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 :?

Verfasst: Donnerstag 25. Oktober 2007, 15:01
von BlackJack
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')