Ich habe ein Problem mit Regex in meinem Python-Skript, ich habe es nie wirklich ehrlich verstanden und finde es immer noch verwirrend, aber ich denke, in diesem Fall brauche ich es. Hier ist mein Problem.Python Regex Pattern Beratung
Unten ist der Ausgang I als String gespeichert habe:
cd /dev;ls | grep st
[[email protected] ~]# cd /dev;ls | grep st
nst0
nst0a
nst0l
nst0m
st0
st0a
st0l
st0m
stderr
stdin
stdout
vhost-net
[[email protected] dev]#
Aus dieser Saite, die ich zu identifizieren versuchen und speichern „ST0“ auf eine Variable später verwendet werden, jedoch kann es mehr Ergebnisse sein als nur st0, die gefunden werden müssen. Die Nummer wird automatisch erzeugt, wenn ein neues Gerät an den Server angeschlossen wird (daher könnte st0, st1, st2 unendlich sein und ich möchte alle Ergebnisse in einem Tupel speichern)
Kann mir jemand sagen, was für ein Regex-Muster ich habe sollte verwenden, um "st" als die ersten zwei Zeichen zu identifizieren und die nachfolgenden Zahlen danach zu erhalten?
Dank
Also, was Sie versucht haben? Was meinst du mit "die ersten zwei Zeichen"? Woher? –
Mit den ersten beiden Zeichen meine ich "st" und durch was ich meine in der Ausgabe string habe ich kopiert und eingefügt. Ich habe versucht, re.findall (r '\ bst \ b', Ausgabe), die ['st', 'st'] zurückgibt, aber ich weiß nicht, wie man die zwei Zeichen danach – Tolki
Verwenden Sie 're.findall (r '\ bst \ d + \ b ', Ausgabe) '. Wenn Sie das 'st \ d +' als ganze Zeile cotntent meinen, verwenden Sie 're.findall (r '(? M)^st \ d + $', Ausgabe)' –