Regex (richtigen Teil aus String filtern)

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
joko15
User
Beiträge: 5
Registriert: Donnerstag 9. Februar 2017, 19:20

Hallo zusammen,

ich verzweifel gerade schon ne Weile und finde nicht den richtigen Ausdruck um die Strings richtig zu filtern, wäre nett wenn mir jemand helfen könnte. :K

Den Fett geschriebenen Inhalt würde ich gerne herausfiltern.
PS: Ich verwende Python 3

3 Beispiele:
20430 Text Abc BB 16 3,3 BE 5 4 2 01.01.2017
20687 Beliebiger Text BB 16 1,0* BE 5 4 1 05.07.2016
16548 Abc Text BB 16 5,0 NB 0 4 2 15.06.2016

var1_1='Text Abc'
var1_2=3,3

var2_1='Beliebiger Text'
var2_2=1,0

var3_1='Abc Text'
var3_2=5,0

Gruß
Benutzeravatar
pillmuncher
User
Beiträge: 1484
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

@joko15: Was hast du denn schon versucht?
In specifications, Murphy's Law supersedes Ohm's.
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@joko15: was hast Du schon versucht? Kennst Du split und rsplit mit ihrem zweiten Parameter? Ist es Absicht, dass in der zweiten Zeile 1,0* steht?
joko15
User
Beiträge: 5
Registriert: Donnerstag 9. Februar 2017, 19:20

für var1_2 und var2_2 hab ich hiermit bekommen:

Code: Alles auswählen

        my_regex = re.escape('BB 16') + r"(.*?)BE"
        print(re.findall(my_regex, line))
Aber var3_2 bekomme ich damit ja nicht :(
für die anderen Variablen hab ich leider kein Plan wie ich da dran kommen könnte.

PS: 1,0* ist Absicht
Sirius3
User
Beiträge: 17748
Registriert: Sonntag 21. Oktober 2012, 17:20

@joko15: man würde wohl mit

Code: Alles auswählen

text, _, _, zahl, _, _, _, _, _ = "16548 Abc Text BB 16 5,0 NB 0 4 2 15.06.2016".rsplit(None, 8)
anfangen.
joko15
User
Beiträge: 5
Registriert: Donnerstag 9. Februar 2017, 19:20

ok vielen Dank ich glaub mit dem split bekomme ich es hin :)
Antworten