Ich versuche alle Übereinstimmungen in einer Zeichenfolge zu finden, die mit | |
beginnt.
Ich habe versucht: if ($line =~ m/^\\|\s\\|/)
was nicht funktioniert hat.
Irgendwelche Ideen?
Du entkommst der Pipe ein Mal zu viel und entkommst stattdessen effektiv dem Backslash.
%Vor%Pipe-Zeichen sollten in einem Perl-Regex mit einem einzelnen Backslash versehen werden. (Perl-Regexes unterscheiden sich ein wenig von den POSIX-Regexes. Wenn Sie das beispielsweise in Grep verwenden, würden die Dinge ein bisschen anders sein.) Wenn Sie speziell nach einem Leerzeichen zwischen ihnen suchen, verwenden Sie einen entkapselten Bereich. Sie sind in einem Perl-Regex durchaus akzeptabel. Hier ist ein kurzes Testprogramm:
%Vor%Entfernen Sie die ^ und die doppelten Backslashes. Das ^ erzwingt, dass die Zeichenfolge am Anfang der Zeichenfolge steht. Da Sie alle Übereinstimmungen in einer Zeichenfolge suchen, ist das wahrscheinlich nicht das, was Sie wollen.
%Vor%