wake-up-neo.com

Einen Schrägstrich mit einer Regex abgleichen

Ich habe nicht viel Erfahrung mit JavaScript, aber ich versuche ein Tag-System zu erstellen, das anstelle von @ oder #/ verwendet.

var start = /#/ig; // @ Match

var Word = /#(\w+)/ig; //@abc Match

Wie könnte ich einen / anstelle des # verwenden? Ich habe versucht, var slash = '/' auszuführen und + slash + hinzuzufügen, aber das schlug fehl.

63
iBrazilian2

Sie können es so entkommen.

/\//ig; //  Matches /

oder verwenden Sie einfach indexOf

if(str.indexOf("/") > -1)
86
Ben McCormick

Sie müssen den / mit einem \ abschließen.

/\//ig // matches /
17
djechlin

Wenn Sie / verwenden möchten, müssen Sie es mit einem \

var Word = /\/(\w+)/ig;
6
epascarello

In regulären Ausdrücken ist "/" ein Sonderzeichen, für das ein Escapezeichen verwendet werden muss (AKA wird markiert, indem ein\vor ihm gesetzt wird, wodurch jegliche spezialisierte Funktion, für die es dient, negiert wird). 

Hier ist was Sie brauchen:

var Word = /\/(\w+)/ig; //   /abc Match

Lesen Sie hier die RegEx-Sonderzeichen: http://www.regular-expressions.info/characters.html

6
Kirk H

Sie können auch die spezielle Handhabung von JS des Schrägstrichs umgehen, indem Sie ihn wie folgt in eine Zeichengruppe einschließen:

const start = /[/]/g;
"/dev/null".match(start)     // => ["/", "/"]

const Word = /[/](\w+)/ig;
"/dev/null".match(Word)      // => ["/dev", "/null"]
4
nupanick

Für mich habe ich versucht, den / in einem Datum in C # abzugleichen. Ich habe es nur mit (\/) gemacht:

string pattern = "([0-9])([0-9])?(\/)([0-9])([0-9])?(\/)(\d{4})";
string text = "Start Date: 4/1/2018";

Match m = Regex.Match(text, pattern);

if (m.Success) 
{ 
    Console.WriteLine(match.Groups[0].Value);  // 4/1/2018
}
else
{
    Console.WriteLine("Not Found!");
}

JavaScript sollte auch in der Lage sein, (\/) in ähnlicher Weise zu verwenden. 

1
vapcguy

Beim Extrahieren von durch \ und / und haben eine Lösung gefunden, die zu beiden passt, außer new RegExp, welches benötigt \\\\ am Anfang. Diese Ergebnisse sind in Chrome und IE11.

Der reguläre Ausdruck

/\\(.*)\//g

funktioniert nicht. Ich denke der // wird trotz Escapezeichen als Kommentaranfang interpretiert. Der reguläre Ausdruck (in meinem Fall gleichermaßen gültig, aber nicht allgemein)

/\b/\\(.*)\/\b/g

geht auch nicht. Ich denke, der zweite / beendet den regulären Ausdruck trotz des Escapezeichens.

Was für mich funktioniert, ist die Darstellung von / wie \x2F, die hexadezimale Darstellung von /. Ich denke, das ist effizienter und verständlicher als die Verwendung von new RegExp, aber natürlich braucht es einen Kommentar, um den Hex-Code zu identifizieren.

0
Ronald Davis

Der Schrägstrich ist ein Sonderzeichen. Sie müssen also vor dem Schrägstrich einen Backslash hinzufügen, damit er funktioniert

$patterm = "/[0-9]{2}+(?:-|.|\/)+[a-zA-Z]{3}+(?:-|.|\/)+[0-9]{4}/";

wo/steht für / auf diese Weise suchen Sie 

0
Junaid Lodhi