Wie können wir den folgenden regulären Ausdruck interpretieren?
/^/products/(?:([^/]+?))(?:/([^/]+?))?/?$/i,
Ich verstehe es so etwas zu bewerten
/products/ (optional parameters)
Hinweis: Ich programmiere in Javascript. Node Framework um genau zu sein.
Antworten:
1 für die Antwort № 1Im /^/products/(?:([^/]+?))(?:/([^/]+?))?/?$/i,
Der Erste /
ist ein Regex-Begrenzer. ^
verweist auf den Anfang einer Zeichenfolge /products/
(?:
Gruppe nicht erfassen
([^/]+?)
Capture auf 1, jede Zeichenfolge außer /
. Diese Zeichenfolge wird "am wenigsten ausgewählt", da sie nachgestellt wird ?
schlussendlich. ")` beendet die Nichterfassungsgruppe.
(?:
Eine andere Gruppe, die nicht erfasst wird, beginnt. Sie gruppiert, erfasst jedoch nicht /
wegen Fluchtcharakter /
.
([^/]+?)
Capture auf 2, jede Zeichenfolge außer /
. Diese Zeichenfolge wird "am wenigsten ausgewählt", da sie nachgestellt wird ?
schlussendlich. ")` beendet die Nichterfassungsgruppe.
Ich bin mir nicht sicher ?
am Ende von (?:([^/]+?))(?:/([^/]+?))
macht keinen Unterschied.
/?
sucht ein Optinal /
$
vor einem optionalen n und dem Ende der Zeichenfolge
/i
Lässt den regulären Ausdruck Groß- und Kleinschreibung ignorieren, damit er übereinstimmt /products/
, `/ PROducts" usw. am Anfang.