Seite 1 von 1

Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Montag 2. August 2021, 13:46
von Klick
Hallo,

mein txt file beinhaltet

Code: Alles auswählen

      hello
      hello 11.11.22
Code soll wort "hello" und zahlen NUR im zusammenhang finden und nach den zahlen "TEST" in der selben Zeile das file schreiben.


Code: Alles auswählen

    import re

with open('sonicwall.txt', 'r') as searchfile:
        for line in searchfile:
            if re.search('host' and [00-100000], line, re.M|re.I):
                    search.
result soll im file so aussehen:

Code: Alles auswählen

     
      hello
      hello 11.11.22 TEST

Re: Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Montag 2. August 2021, 14:19
von Sirius3
Wie ist denn die Datei wirklich aufgebaut? Das sind ja keine Zahlen, sondern durch . getrennte Ziffernblöcke. Oder soll das ein Datum sein? Wie ist das "Zahlenformat" definiert?
Und welche Gedanken hast Du Dir dazu schon gemacht?
An welcher Stelle kommst Du konkret nicht weiter?

Zum Code: Die Einrückungen stimmen nicht. Das import ist zu weit eingerückt. Und es wird immer mit 4 Leerzeichen pro Ebene eingerückt, nicht mal 8 und mal 4.
Hast Du Dir mal angeschaut, was der Ausdruck 'host' and [00-100000] ergibt?
Warum schreibst Du [00-100000] und nicht einfach [-100000]? Was bedeutet diese -100000? Warum steckt die Zahl in einer Liste? re.search erwartet als erstes Argument einen regulären Ausdruck und keine Liste.
Soll die Aufgabe mit regulären Ausdrücken gelöst werden?
Dann teste erst einmal den regulären Ausdruck, bevor Du anfängst, diesen in ein Programm einzubauen.

Re: Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Montag 2. August 2021, 14:26
von Klick
Sirius3 hat geschrieben: Montag 2. August 2021, 14:19 Wie ist denn die Datei wirklich aufgebaut? Das sind ja keine Zahlen, sondern durch . getrennte Ziffernblöcke. Oder soll das ein Datum sein? Wie ist das "Zahlenformat" definiert?
Und welche Gedanken hast Du Dir dazu schon gemacht?
An welcher Stelle kommst Du konkret nicht weiter?

Zum Code: Die Einrückungen stimmen nicht. Das import ist zu weit eingerückt. Und es wird immer mit 4 Leerzeichen pro Ebene eingerückt, nicht mal 8 und mal 4.
Hast Du Dir mal angeschaut, was der Ausdruck 'host' and [00-100000] ergibt?
Warum schreibst Du [00-100000] und nicht einfach [-100000]? Was bedeutet diese -100000? Warum steckt die Zahl in einer Liste? re.search erwartet als erstes Argument einen regulären Ausdruck und keine Liste.
Soll die Aufgabe mit regulären Ausdrücken gelöst werden?
Dann teste erst einmal den regulären Ausdruck, bevor Du anfängst, diesen in ein Programm einzubauen.
'host' ist falsch soll 'hello' stehen

1. Zahlen durch Komma getrennt
2. Die Frage ist, ob der Code korrekt ist.
3. Die Einrückung ist hier nur pseudo.
4. [00-100000] bedeutet die zahlen 00-100000 können im zusammenhang mit 'hello' vorkommen.
5. Die Aufgabe soll mit regex gelöst werden. Es geht mir darum X Wort und wenn Y Zahl darauffolgt in einem TXT File zu finden ist, dann soll etwas nach Y Zahl in die selbe Zeile des Files geschrieben werden, hier "TEST" als Beispiel.

Kurzes Beispiel, du hast ein text dokument in dem Daten gespeichert sind, die mit einem Datum gekennzeichnet sind.
Jede Zeile mit einem Datum 2021.08.02 und das darauffolgende Wort OK möchtest du eine weiteren string anbinden. Es geht mir hier um eine automatisierung

Re: Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Montag 2. August 2021, 17:06
von Sirius3
Laut Beispiel sind die Zahlen aber per Punkt getrennt. Mit pseudo-Einrückungen kommt man in Python nicht weit. Sorgfalt ist beim Programmieren und beim Frage stellen wichtig.
Nein, [00-100000] bedeutet Liste mit einer Zahl.

Und zum Schluss kommst Du jetzt mit Datum + OK. Was denn nun?
Host mit IP-Adresse, Hallo mit Kommazahl oder Datum mit OK?
Aber egal was, wie schon in der ersten Antwort, fang damit an, einen regulären Ausdruck an Beispielstrings zu testen.

Re: Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Montag 2. August 2021, 17:09
von rogerb
@Klick,
1. Zahlen durch Komma getrennt
Später schreibst du: Worte und Zahlen, dann wieder Datum. Dann soll da am Ende "TEST" eingetragen werden und steht da etwas vom darauffolgenden Wort "OK".
Die Antwort ist wahrscheinlich einfach aber die Frage ist mir zu schwer...

Re: Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Montag 2. August 2021, 22:19
von Klick
Ihr seid echt zu dumm. Könnt ihr nicht zwischen meinen Pseudo Code und einem Beispiel differenzieren?
Ich habe dir gesagt worum es geht, dann für dumme extra dir nochmal ein Beispiel dazu geschrieben damit du das in deinen Kopf bekommst, aber das hilft wohl nichts. Naja habe schon die Lösung selber gefunden, hier sind echt nur vollidioten.

Re: Regex Bestimmtes Wort mit darauffolgender Zahl finden

Verfasst: Dienstag 3. August 2021, 11:55
von Damaskus
Benutzer Aufgrund der Beleidung lebenslang gesperrt. Thema geschlossen.