meine login.txt Datei enthält folgende EinträgePositiv/Negativ Look-Ahead mit grep und Perl
abc def
abc 123
def abc
abc de
tha ewe
wenn ich die positive Vorschau mit Perl zu tun, ich bin immer folgendes Ergebnis
cat login.txt | perl -ne 'print if /(?)abc\s(?=def)/'
abc def
wenn Ich benutze Grep Ich erhalte das folgende Ergebnis
negativ betrachtet Ergebnisse wie folgt aus Perl und Grep.
cat login | perl -ne 'print if /(?)abc\s(?!def)/'
abc 123
def abc
abc de
grep Ergebnis
cat login.txt | grep -P '(?<=abc)\s(?!def)'
abc 123
abc de
perl entsprach dem def ABC für die negative lookahead. aber es sollte nicht mit def abc übereinstimmen, da ich abc und dann def-Muster überprüfe. grep gibt das korrekte Ergebnis zurück.
fehlt etwas in meinem Perlmuster?
'(?) Abc' ist überhaupt kein positiver Lookahead Regex; du wolltest '(? =) abc'. Lesen Sie den Dokumentarfilm genauer durch, ich gebe zu, dass es eine unglaublich dichte Lektüre ist und am besten beim Experimentieren gelernt wird ... – smci