tengo este código .htaccess[^ /] + explicación en .htaccess
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/
Pero yo no podía entender lo que hace [^/]+
hacer? He estado buscando esto en Google por un tiempo, pero no pude obtener lo que quería.
tengo este código .htaccess[^ /] + explicación en .htaccess
RewriteRule ^/([uge])/([^/]+)$ /$1/$2/
Pero yo no podía entender lo que hace [^/]+
hacer? He estado buscando esto en Google por un tiempo, pero no pude obtener lo que quería.
Tienes dos construcciones regex básicas aquí
Clase de carácter
See character classes on regular-expressions.info
[...]
es una clase de caracteres, significa que este constructo coincide con un carácter de la clase (desde el interior de los corchetes).
La clase comienza con un ^
, que da la clase de caracteres un significado especial, es una clase de caracteres negada ([^...]
), significa que coincide con todo eso no es parte de la clase.
cuantificador
See quantifiers on regular-expressions.info
+
es un cuantificador, que significa 1 o más
significado de sus expresiones regulares
Para entender lo que esto está haciendo usted tiene también tomar lo siguiente en cuenta, el $
al final. Este es un ancla que coincide con el final de la cadena.
See anchors on regular-expressions.info
por lo ([^/]+)$
coincidir todos los caracteres al final de la cadena que no son barras.
Aquí también puede encontrar un basic tutorial
Eso significa:
Partido 1 o más caracteres hasta barra inclinada
/
se encuentra
Cualquier cosa entre corchetes [
y ]
que tiene acento circunflejo ^
en los actos de inicio tiene la negación y por lo tanto:
[^/]
significa cualquier carácter e alvo/
[^/]+
significa 1 o más caracteres, excepto/
gracias. +1 para ti. –
La expresión [^/]
coincide con cualquier carácter que no es el /
, y el Quantor +
denota que la expresión a la izquierda de la Quantor tiene que aparecer en Leat una vez.
gracias .. +1 para usted también :) –
[^/]
significa cualquier carácter que no coincida con /
.
gracias +1 a usted ... –
[any_character]
es una clase de caracteres o conjunto de caracteres charclass Ref. [^any_character]
es una clase de caracteres o conjuntos de caracteres negados charclass negated Ref.
De Anchors Ref:
Recuerde
^
también tiene el significado: El acento circunflejo^coincide con la posición antes del primer carácter de la cadena (un ancla) cuando no se utiliza dentro de una clase de caracteres.
De charclass Ref: Metacharacters Inside Character Classes:
Tenga en cuenta que los únicos caracteres especiales o meta-caracteres dentro de una clase de caracteres son el corchete de cierre (]), la barra invertida(), el símbolo de intercalación (^) y el guión (-) Los metacaracteres habituales son caracteres normales dentro de una clase de caracteres, y no necesitan ser escapados por una barra invertida. Para buscar una estrella o más, use [+ *]. Su expresión regular funcionará bien si escapa de los metacaracteres regulares dentro de una clase de caracteres, pero al hacerlo reduce significativamente la legibilidad.
De Repitition Ref
+
significa uno o más chracters.
así, [^/]+
Medios encontró ningún carácter que no sea /
.Por lo tanto, coincidirá hasta que se encuentre /
.
Para ^/([uge])/([^/]+)$
- la cadena debe comenzar con /
- seguido de carácter u o g o e
- seguidos por /
- siguieron y terminaron por uno o más de cualquier carácter que no sea /
los ()
(entre paréntesis) se utilizan para: Ronda Soportes Crear una referencia inversa Ref
gracias. Creo que esta es la mejor explicación para un principiante, como yo. –