Um Folgendes zu erreichen:
%Vor%Ich habe den folgenden regulären Ausdruck:
%Vor%Gibt es eine Möglichkeit, das optional zu machen? also wenn es da toll ist, wenn nicht, stimmt es trotzdem?
Sicher. Setzen Sie es in Klammern, setzen Sie ein Fragezeichen dahinter. Fügen Sie eines der Leerzeichen ein (ansonsten versuchen Sie, zwei Leerzeichen zu finden, wenn "at" fehlt.)% Co_de% (oder wie jemand anderes vorgeschlagen hat, (at )?
, um zu verhindern, dass es erfasst wird).
Vergessen Sie nicht (?:)
, um sicherzustellen, dass der in Klammern gesetzte Ausdruck nicht erfasst wird
Andere haben Ihre Antwort bekommen. Dies ist nur eine Nebenre: Reguläre Ausdrücke.
Wenn Sie in regulären Ausdrücken "Bedingungen" angeben, bezieht sich dies auf die Regex-Sprache. Wie jede andere Sprache ist es eine Verzweigung in der Codeausführung, aber der Code ist ein anderer regulärer Ausdruckspfad, der "Code" von regulären Ausdrücken.
Also im psudo-Code: Wenn (Auswertung ist wahr) mache diesen regulären Unterausdruck, sonst mache diesen anderen Unterausdruck.
Diese Bedingung existiert in erweiterten Engines für reguläre Ausdrücke ... Perl.
Perl verwendet die fortschrittlichste Engine für reguläre Ausdrücke, die es gibt. In Version 6 und darüber hinaus wird es ein integraler Bestandteil der Sprache sein, wo sich Code und Ausdruck nahtlos vermischen.
Perl 5.10 hat dieses Konstrukt:
(? (Bedingung) Ja-Muster | Kein Muster).
Bearbeiten Nur eine Warnung, dass, wo Perl geht, jede andere Sprache bis zum regulären Ausdruck folgt.
Sicher, Sie müssen nur den optionalen Teil gruppieren ...
%Vor%Und, ok, ich denke, das wird bei at at at entsprechen, also könntest du es einfach tun:
%Vor%