/ / Regex-Kompilierungsfehler [duplizieren] - php, regex, preg-replace

Regex-Kompilierungsfehler [duplizieren] - php, regex, preg-replace

Ich suche nach einem regulären Ausdruck, der ein x am Anfang eines Pfades. Akzeptierte Pfadtrennzeichen sind , / und . Der Pfad kann auch mit einem dieser Trennzeichen beginnen, muss aber nicht.

Gemäß Regexpal es funktioniert, aber PHP löst den folgenden Fehler aus:

Compilation failed: missing terminating ] for character class at offset 24

und hier ist die Regex:

/^([/.\]?)X([/.\]{1})/i

Was ist los mit dieser Regex?

Antworten:

4 für die Antwort № 1

Du entkommst ] Am Ende

Sie können stattdessen verwenden preg_quote () Das setzt einen Backslash vor jedes Zeichen, das Teil der regulären Ausdruckssyntax ist.

Außerdem gibt es keine Notwendigkeit zu entkommen .(wenn es in der Zeichenklasse ist)


0 für die Antwort № 2

Dies ersetzt alle x, die direkt nach jedem Nicht-Alphabet- oder Nicht-Ziffern-Zeichen stehen.

$ result = preg_replace ("/ (? <= W) x /", "", $ Subjekt);