Ich habe
%Vor% Die Zeichenfolge hätte immer nur eine fortlaufende Anzahl von Zahlen, wie in diesem Fall 1234
. Rest alle werden entweder Alphabete oder andere Sonderzeichen sein.
Wie kann ich die Zahl ( 1234
in diesem Fall) extrahieren und in str
speichern?
Diese Seite schlägt vor, dass ich \d
verwenden soll, aber wie?
Dadurch werden alle nicht-numerischen Zeichen aus der Zeichenfolge entfernt. Das ist alles was du tun musst.
BEARBEITEN: Wenn Unicode-Ziffern in anderen Skripten vorhanden sein sollten, ist eine bessere Lösung:
%Vor%Wenn Sie die ursprüngliche Zeichenfolge nicht ändern möchten, können Sie die Zahlen extrahieren, indem Sie sie in der Regex mithilfe von Untermustern erfassen. Im Listenkontext gibt ein regulärer Ausdruck die in den Untermustern definierten Übereinstimmungen zurück.
%Vor%Wenn Sie es auf die destruktive Weise tun wollten, ist dies der schnellste Weg, es zu tun.
%Vor% tr
zeigt alle Zeichen im c
omplement von% co_de an % zu nichts, 0-9
löscht sie.
Der einzige Vorbehalt zu diesem Ansatz und Phillip Potter ist, dass dort, wo sich eine weitere Gruppe von Ziffern weiter unten in der Zeichenfolge befindet, diese mit der ersten Gruppe von Ziffern verkettet werden. Es ist also nicht klar, dass du das machen willst.
Der sicherste Weg, um eine einzige Zifferngruppe zu erhalten, ist
%Vor% Die Übereinstimmung in einem Listenkontext gibt eine Liste von Captures zurück. Die Parens um d
setzen den Ausdruck einfach in einen Listenkontext und weisen das erste Capture $str
zu.
Tags und Links perl