Sie benötigen
/^[^;]*/
El [^;]
es un Charakterklasse Es passt zu allem außer einem Semikolon.
^ (Zeilenanfangsanker) wird an den Anfang der Regex angehängt, damit nur die erste Übereinstimmung in jeder Zeile erfasst wird. Dies kann erforderlich sein oder auch nicht, je nachdem, ob mögliche nachfolgende Übereinstimmungen erwünscht sind.
Zum Zitieren der perlre
manpage:
Sie können eine Zeichenklasse angeben, indem Sie eine Liste von Zeichen in [] einschließen, die auf jedes Zeichen aus der Liste passt. Wenn das erste Zeichen nach "[" ein "^" ist, passt die Klasse auf jedes Zeichen, das nicht in der Liste steht.
Dies sollte in den meisten Regex-Dialekten funktionieren.
112 Stimmen
/^(.*?);/
sollte auch funktionieren (es heißt nicht gierig ), aber die gegebenen Antworten mit[^;]*
sind besser.0 Stimmen
Wie würden Sie alles nach dem Semikolon und nicht das Semikolon selbst auswählen?
0 Stimmen
Siehe diese Arbeiten
\w+(?!([^]+;)|;)
aber dies nicht, warum?.+(?!([^]+;)|;)
1 Stimmen
Pascal, das hättest du als Antwort schreiben sollen!