Thread Zeichenkette mehrfach aus String lesen und Position verwenden
(5 answers)
Opened by singsang at 2013-05-02 20:59
Man kann auch mit einem globalen Regex-Matching arbeiten, das in einer while()-Schleife steckt.
Mit pos() kann man abfragen, an welcher Stelle der "Suchzeiger" des Regex im zu durchsuchenden Skalar aktuell steht. Da die Position in diesem Beispiel immer direkt hinter dem Treffer liegt, ist die Länge des Suchbegriffs davon abzuziehen. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 #! /usr/bin/env perl use strict; use warnings; use 5.016; # Position 0 10 20 # | | | my $string = "123abc789def345abc901"; my $search = "abc"; my $length = length($search); while ( $string =~ m/$search/gi ) { say pos($string)-$length; } __END__ Resultat: Last edited: 2013-05-02 22:54:04 +0200 (CEST) meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |