Frage In einem regulären Ausdruck einen Schrägstrich verlassen


Meine Frage ist eine einfache und es geht darum, dass regulärer Ausdruck entweicht. Müssen Sie einem Schrägstrich entkommen? / in einem regulären Ausdruck? Und wie würdest du das machen?


75
2018-05-20 18:35


Ursprung


Antworten:


Welcher Kontext / Sprache? Einige Sprachen verwenden / als Mustertrennzeichen, also ja, müssen Sie es je nach Sprache / Kontext entkommen. Sie entkommen ihm, indem Sie einen umgekehrten Schrägstrich davor setzen: \/ Für einige Sprachen (wie PHP) können Sie andere Zeichen als Trennzeichen verwenden und müssen daher nicht entkommen. Aber AFAIK in allen Sprachen, die einzige besondere Bedeutung der / Ist es das angegebene Mustertrennzeichen?


63
2018-05-20 18:38



Hier sind ein paar Optionen:

  • In Perl können Sie alternative Trennzeichen auswählen. Du bist nicht beschränkt auf m//. Sie könnten ein anderes wählen, wie z m{}. Dann ist eine Flucht nicht notwendig. In der Tat behauptet Damian Conway in "Perl Best Practices" m{} ist das einzige alternative Trennzeichen, das verwendet werden sollte, und dies wird durch Perl :: Critic (auf CPAN) verstärkt. Während Sie mit einer Vielzahl von alternativen Begrenzungszeichen durchkommen können, // und {} scheint am klarsten zu sein, um später zu entziffern. Wenn jedoch eine dieser Optionen zu viel Entkommen zur Folge hat, wählen Sie, was am besten für die Lesbarkeit geeignet ist. Gemeinsame Beispiele sind m(...), m[...], und m!...!.

  • In Fällen, in denen Sie alternative Trennzeichen nicht verwenden können oder möchten, können Sie die Schrägstriche mit einem umgekehrten Schrägstrich umgehen: m/\/[^/]+$/ zum Beispiel (mit einem alternativen Trennzeichen, das könnte werden m{/[^/]+$}, die deutlicher lesen können). Der Schrägstrich mit einem umgekehrten Schrägstrich zu verlassen ist häufig genug, um einen Namen und eine Wikipedia-Seite verdient zu haben: Lehnendes Zahnstocher-Syndrom. In regulären Ausdrücken, in denen es nur eine einzige Instanz gibt, wird das Entkommen eines Schrägstrichs möglicherweise nicht so weit angehoben, dass es die Lesbarkeit behindert, aber wenn es außer Kontrolle gerät und wenn Ihre Sprache alternative Trennzeichen wie Perl zulässt, würde dies der Fall sein die bevorzugte Lösung sein.


28
2018-05-20 19:09



Verwenden Sie den umgekehrten Schrägstrich \ oder wählen Sie ein anderes Trennzeichen, d m#.\d# Anstatt von /.\d/ "In Perl können Sie das Trennzeichen für reguläre Ausdrücke in fast jedes andere Sonderzeichen ändern, wenn Sie ihm den Buchstaben m (für die Übereinstimmung) vorangestellt haben."


8
2018-05-20 19:02



Wenn das Trennzeichen / ist, müssen Sie entkommen.


5
2018-05-20 18:39