Ich habe eine Textdatei und möchte alle übersetzten Zeichenfolgen daraus erhalten.
Alle Übersetzungen sind wie folgt:
_("string")
Also habe ich diesen regulären Ausdruck:
(_([""].+[""]))
Welches findet alle meine Übersetzungen ... nun, wie invertiere ich dies, damit ich alles andere löschen kann?
Am Ende machte ich:
egrep "_(".+?)" ~myfile.py -o >> ~/Desktop/translations.txt
egrep "_(".+?)" ~myfile.py -o >> ~/Desktop/translations.txt
Ich konnte es nicht einmal auf einmal tun, weil ich nicht wusste, wie ich mich dem einfachen Anführungszeichen in der Shell entziehen sollte :(
Antworten:
0 für die Antwort № 1Einen regulären Ausdruck zu negieren ist oft hübschkompliziert. Anstatt alles andere mit regulären Ausdrücken zu löschen, ist es viel besser, alle Übereinstimmungen Ihres aktuellen regulären Ausdrucks zu finden und die Übereinstimmungen dann zusammenzufügen, um nur eine Zeichenfolge der Übereinstimmungen zu erstellen.