utgmk
Posts: 11
Joined: Thu May 09, 2019 7:27 am

Offtopic: Regulare Expression

Mon May 27, 2019 9:33 am

Servus,

ich habe ein kleines Problem mit Python und Regular Expression.

Ich habe folgenden String:

Code: Select all

status=ready
total=15538848
used=277784
free=15261064
Ich möchte eine Regular Expression die mir die Werte hinter dem = ausgibt.

ready
15538848
277784
15261064

Folgende RegEx habe ich erstellt.
result_regEx = re.search("[=].*",r.text)

Leider bekomme ich bei den Matches print(result_regEx.group(0)) das = mit ausgegeben.

=ready


Über jeden Tipp bin ich ich dankbar. Ich bin davon überzeugt, dass ich nicht so weit von der Lösung entfernt bin.

lg
utgmk

smartifahrer
Posts: 828
Joined: Sat Feb 13, 2016 8:10 am

Re: Offtopic: Regulare Expression

Mon May 27, 2019 11:35 am

Wenn du den String Zeilenweise bearbeitest würde sich string.split(separator, max) anbieten
https://docs.python.org/3/library/stdty ... #str.split
PHP-Entwickler, Elektroniker, Technik-Bastler. 5 Raspis mit Rasbian, Retropi und Libreelec.

User avatar
mline
Posts: 1283
Joined: Sun Jan 27, 2013 1:47 pm
Location: Austria, Vienna

Re: Offtopic: Regulare Expression

Mon May 27, 2019 11:58 am

Mit group(0) gibst du immer den vollständigen Match aus. Wenn du .* also als Gruppe definierst (.*) wirst du mit group(1) nur den Teil hinter dem = bekommen.

Wird hier und hier ausführlich erklärt.
<~~>

utgmk
Posts: 11
Joined: Thu May 09, 2019 7:27 am

Re: Offtopic: Regulare Expression

Mon May 27, 2019 2:53 pm

Hallo,

vielen Dank für den Tipp mit den Gruppen.

Ich habe es jetzt folgendermaßen gelöst. Die richtige Lösung zu finden hat mich ganz schön Nerven gekostet.


result_regEx = re.findall(r"[=](.*)",r.text, re.MULTILINE)

Aufruf der Ergebnisse:

print(result_regEx[0])
print(result_regEx[1])
print(result_regEx[2])
print(result_regEx[3])

bzw.

for r in result_regEx:
tue etwas...

Diese Regular Expressions sind echt nicht so leicht zu verstehen. Vor allem wenn man nur jedes Schaltjahr damit macht.

Trotzdem Danke.

Grüße
utgmk

Return to “Deutsch”