Escape-slashes in regex?
Ich habe eine regex zu testen, für ein YouTube embedded video:
/^(http:\/\/www\.youtube\.com\/embed\/)[^\/\s\\]+$/
Es funktioniert für das, was ich erwarte, wenn ich es testen, aber das problem ist aber, dass ich mich übergeben muss, dass regex als string an eine Funktion. Vor allem bin ich mit htmlawed, wo gebe ich folgenden string an eine Funktion:
func('iframe=-*,src(match="/^(http:\/\/www\.youtube\.com\/embed\/)[^\/\s\\]+$/")');
Das problem ist, dass die oben genannten regex irgendwie funktioniert, aber es ignoriert die Schrägstriche, und akzeptiert alles, was in Stelle.
Dass ist der Grund, warum ich vermute, dass es ein problem mit der Flucht.
Ich würde schätzen, wenn Sie Ratschläge erteilen konnte, einige alternative Wege, die Maskierung dieser Schrägstriche und umgekehrte Schrägstriche... es muss einen Weg?
- Zwei Schrägstriche?
\\
- Die Bibliothek kann eigene Flucht; versuchen
\\\/
. - Die Sprache. Welcher code? Ist, dass eine string-definition? Wenn ja, was ist der code? Sie müssen dem aktuellen source-code, ansonsten ist die Frage nicht präzise ist, das es schwer zu beantworten.
- Es ist hex-code?
\x5C
? - Keine, die zu funktionieren scheint... ich werde weiter versuchen wieder
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn du einen string hast, Sie zu entkommen müssen die umgekehrten Schrägstriche (und Angebote) für das string-literal. Oder, je nachdem, wie die Funktion baut die regex aus dem string, können Sie nicht brauchen, um zu entkommen Schrägstriche an alle (ich glaube nicht hier).
'iframe=-*,src(match="/^(http:\\/\\/www\\.youtube\\.com\\/embed\\/)[^\\/\\s\\\\]+$/")'
In PHP, können Sie auch einen anderen regex delimiter:
preg_match('/\s\\\\/', $subject)
...s
,.
) hinten zu machen, umgekehrter Schrägstrich plus-Zeichen in der Zeichenfolge?