Ho questo codice .htaccess[^ /] + spiegazione .htaccess
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/
Ma io non riuscivo a capire che cosa vuol [^/]+
fare? Ho cercato questo su Google per un po ', ma non ho potuto ottenere quello che volevo.
Ho questo codice .htaccess[^ /] + spiegazione .htaccess
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/
Ma io non riuscivo a capire che cosa vuol [^/]+
fare? Ho cercato questo su Google per un po ', ma non ho potuto ottenere quello che volevo.
Hai due costrutti base regex qui
Classe carattere
See character classes on regular-expressions.info
[...]
è una classe di caratteri, significa che questo costrutto partite di un carattere dalla classe (da dentro le parentesi quadre).
La classe inizia con una ^
, che dà la classe di caratteri un significato speciale, la sua una classe caratteri negat ([^...]
), significa corrisponde a tutto ciò che non questo è parte della classe.
Quantificatore
See quantifiers on regular-expressions.info
+
è un quantificatore, che significa 1 o più
Significato vostra regex
di capire che cosa questo sta facendo si hanno anche per prendere la prossima cosa in considerazione, il $
alla fine. Questa è un'ancora che corrisponde alla fine della stringa.
See anchors on regular-expressions.info
così ([^/]+)$
partite tutti i caratteri alla fine della stringa che non sono barre.
Qui si possono anche trovare un basic tutorial
Ciò significa:
allineamento 1 o più caratteri fino barra
/
è situato
Tutto parentesi quadre [
e ]
che ha cursore ^
ai atti inizio ha negazione e quindi:
[^/]
significa qualsiasi carattere e XCept/
[^/]+
significa 1 o più caratteri tranne/
grazie. +1 per te. –
L'espressione [^/]
qualsiasi carattere non è il /
e la Quantor +
indica che l'espressione a sinistra del Quantor deve comparire mantieni una volta
grazie .. +1 anche a te :) –
[^/]
indica qualsiasi carattere non corrispondente a /
.
grazie +1 a te ... –
[any_character]
è una classe di caratteri o set di caratteri charclass Ref. [^any_character]
è una classe di caratteri o set di caratteri negati charclass negated Ref.
Da Anchors Ref:
Ricordate
^
ha anche il significato: L'accento circonflesso^corrisponde la posizione prima del primo carattere della stringa (un ancoraggio) quando non è utilizzato all'interno di una classe di caratteri.
Da charclass Ref: Metacharacters Inside Character Classes:
nota che gli unici caratteri speciali o metacaratteri all'interno di una classe di caratteri sono la parentesi di chiusura (]), la barra inversa(), l'accento circonflesso (^) e il trattino (-). I soliti metacaratteri sono caratteri normali all'interno di una classe di caratteri e non devono essere sfuggiti da una barra rovesciata. Per cercare una stella o più, usa [+ *]. L'espressione regolare funzionerà correttamente se si sfuggono i metacaratteri regolari all'interno di una classe di caratteri, ma ciò riduce significativamente la leggibilità.
Da Repitition Ref
+
, una o più chracters.
così, [^/]+
Mezzi corrisponde con nessun carattere diverso da /
.Quindi, corrisponderà finché non si incontra un /
.
Per ^/([uge])/([^/]+)$
- la stringa dovrebbe iniziare con /
- seguito dal carattere u o g o e
- seguiti da /
- seguiti e si è conclusa da uno o più qualsiasi carattere diverso da /
le (parentesi tonde) ()
sono utilizzati per: rotonde staffe Creare un backreference Ref
grazie. Penso che questa sia la migliore spiegazione per un principiante, come me. –