Wie kann ich den Anfang der nächsten Suchposition um 1 zurückspulen? Angenommen, ich möchte alle Ziffern zwischen #
abgleichen. Das Folgende wird mir nur ungerade Zahlen geben.
Aber wenn ich den Anfang der nächsten Position um 1 zurückspulen könnte, würde ich sowohl gerade als auch ungerade Zahlen bekommen.
Dies funktioniert nicht: pos() = pos() - 1;
Ich weiß, dass ich das mit split
erreichen kann. Aber das beantwortet meine Frage nicht.
Ein Ansatz besteht darin, eine Look-Ahead-Bestätigung zu verwenden:
%Vor% Die Zeichen in der Look-Ahead-Assertion sind nicht Teil des übereinstimmenden Ausdrucks und aktualisieren pos()
nicht nach dem \d
-Teil des regulären Ausdrucks.
Weitere Demos:
%Vor%Tags und Links perl regex-lookarounds