Wie testen Sie am besten, ob der vollständige Inhalt einer Datei mit einer Regex übereinstimmt, z. B.
? %Vor%, d. h. nur 9 Zahlen und nichts anderes, keine Zeilenumbrüche und nicht mehrere Zahlensätze.
Hier ist eine Variante, die ich nicht wirklich mag:
%Vor%Bearbeiten
Ich benutze die akzeptierte Lösung wie folgt:
%Vor%mit GNU grep.
Diese Regex entspricht "bestehend aus 9 Ziffern" und die (?m)
bewirkt, dass Caret und Dollar nach / vor Zeilenumbrüchen übereinstimmen, so dass mehrere Zeilen verhindert werden:
Die Umrisse, die die Hauptübereinstimmung umschließen, stellen sicher, dass die übereinstimmende Zeile die einzige -Zeile in der Datei ist - dh dass es genau eine Zeile in der Datei gibt.
Sehen Sie sich im Rubell an, sehen Sie, wie Sie dem 9-stelligen Eingabetext noch weitere Zeichen hinzufügen, sogar einen einzelnen Zeilenumbruch. führt zu einer Nichtübereinstimmung
Angenommen, Sie möchten keine Zeilenumbrüche in der Datei, überprüfen Sie zunächst die Dateigröße und überprüfen Sie dann den Inhalt:
%Vor%testen:
%Vor%Wie testen Sie am besten, ob der vollständige Inhalt einer Datei mit einer Regex übereinstimmt, z. B.
? %Vor%, d. h. nur 9 Zahlen und nichts anderes, keine Zeilenumbrüche und nicht mehrere Zahlensätze.
Hier ist eine Variante, die ich nicht wirklich mag:
%Vor%Bearbeiten
Ich benutze die akzeptierte Lösung wie folgt:
%Vor%mit GNU grep.
Diese Regex entspricht "bestehend aus 9 Ziffern" und die -m
bewirkt, dass Caret und Dollar nach / vor Zeilenumbrüchen übereinstimmen, so dass mehrere Zeilen verhindert werden:
Die Umrisse, die die Hauptübereinstimmung umschließen, stellen sicher, dass die übereinstimmende Zeile die einzige -Zeile in der Datei ist - dh dass es genau eine Zeile in der Datei gibt.
Sehen Sie sich im Rubell an, sehen Sie, wie Sie dem 9-stelligen Eingabetext noch weitere Zeichen hinzufügen, sogar einen einzelnen Zeilenumbruch. führt zu einer Nichtübereinstimmung
Damit wird die Zahl genau dann gedruckt, wenn genau eine Zeile vorhanden ist und sie mit dem Muster übereinstimmt.
Wenn Sie nur den Rückgabewert wie %code% möchten, können Sie dies verwenden:
%Vor%Testen Sie, dass der Zeilenzähler 1 ist, und testen Sie dann, ob die Zeile mit dem regulären Ausdruck übereinstimmt:
%Vor%Unterbrechen Sie den Befehl, das ist was passiert:
%Vor%Sie können noch restriktiver sein, indem Sie die Bytes mit wc zählen:
%Vor%Bei Bedarf würde der nachfolgende Zeilenumbruch abgefangen. ( %code% zählt stattdessen Zeichen, falls Sie Multi-Byte-Zeichen verwenden)
Sie können pure test oneliner
verwenden %Vor%Angenommen, Sie möchten keine Zeilenumbrüche in der Datei, überprüfen Sie zunächst die Dateigröße und überprüfen Sie dann den Inhalt:
%Vor%testen:
%Vor%