Thread Regex funktioniert nicht
(3 answers)
Opened by Rifki at 2018-02-20 17:18
Das hat mit Windows vs. Linux erstmal nichts zu tun. In Deiner Variablen $zwischen steht eben was, das mit "**" beginnt. Im RegEx-Suchmuster wird die Variable interpoliert und die zwei * als "nested quantifiers" moniert.
Abhilfe (hier falsch, siehe unten): Code (perl): (dl
)
@funde_liste = grep { m/^ \Q ${zwischen}\E \t/xi } @inhalt_pruef; \Q ... \E maskiert die "special chars" (hier die *). Tip am Rande: Ich habe mir angewöhnt, Variablen innerhalb RegExes immer in der Form ${foo} statt $foo zu schreiben, das macht vieles klarer :) Korrektur Auf das \Q darf nicht ein Leerzeichen folgen, der /x-Modifier nützt da nichts. Richtig ist: Code (perl): (dl
)
@funde_liste = grep { m/^\Q${zwischen}\E\t/i } @inhalt_pruef; oder quotemeta(): Code (perl): (dl
)
1 2 $zwischen = quotemeta $zwischen; @funde_liste = grep { m/^${zwischen}\t/i } @inhalt_pruef; Last edited: 2018-02-20 23:52:38 +0100 (CET) Everyone knows that debugging is twice as hard as writing a program in the first place. So if you're as clever as you can be when you write it, how will you ever debug it? -- Brian Kernighan: "The Elements of Programming Style"
|