elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Todos, menos 1 caracter en REGEX
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Todos, menos 1 caracter en REGEX  (Leído 5,073 veces)
Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Todos, menos 1 caracter en REGEX
« en: 2 Junio 2010, 12:45 pm »

Hola gente.
Resulta que estoy modificando un .htaccesses, hago algo así como una redireccion y demas.
Pero en un lugar, necesito "continuar" siempre y cuando, haya cualquier cosa, MENOS una barra.. o sea, llegada la barra, terminar de tomar los datos.

Por ahí leí que [^5] <<< esto hace que continue hasta un 5...

Entonces, ([^/]) << deberia funcionar.. PERO NO FUNCIONA...

Alguien sabe como hacerlo?


En línea

~ Yoya ~
Wiki

Desconectado Desconectado

Mensajes: 1.125



Ver Perfil
Re: Todos, menos 1 caracter en REGEX
« Respuesta #1 en: 2 Junio 2010, 16:04 pm »

Esta:
Código:
([a-z0-9]+)\/?
Continua hasta /

O si quieres terminar en / pero también incluirla:
Código:
(\w+(?:\/?))


En línea

Mi madre me dijo que estoy destinado a ser pobre toda la vida.
Engineering is the art of balancing the benefits and drawbacks of any approach.
raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Todos, menos 1 caracter en REGEX
« Respuesta #2 en: 2 Junio 2010, 16:56 pm »

Era cuestion de poner un simple cuantificador :)

Código:
([^/]+)
En línea

Skeletron


Desconectado Desconectado

Mensajes: 1.731


A long way to go


Ver Perfil WWW
Re: Todos, menos 1 caracter en REGEX
« Respuesta #3 en: 2 Junio 2010, 20:20 pm »

Era cuestion de poner un simple cuantificador :)

Código:
([^/]+)
Vos sabes que, yo tambien lo probé así... y tambien sacandole los corchetes.. pero no funciona.
La direccion:
http://localhost:8084/aaAA.AAaa
No funciona.
Es como que no estuviese funcionando bien... o yo la implemento mal (no creo, porque es muy corto el regex).

Rewriterule ^([^/]+)$ index.php?x=$1 [L]

Esa es la implementacion que estoy haciendo.
Se supone que tendría que guardar a $1, todo lo que hay despues de la barra del .com, HASTA una "/".. o si no la hay, mejor.

Sim embargo, puedo hacer así:
Rewriterule ^([a-zA-Z_-]+)/?$ index.php?x=$1 [L]
Que me toma todo lo que haya despues de la barra, siempre y cuando esas cosas sean:
a-z
A-Z
-
_

(los 2 anteriores es: _ y -)
Pero si me llega por parametro un PUNTO en la url, no lo toma.. pero si se lo agrego con |. por ejemplo:
Rewriterule ^([a-zA-Z_-\.]+)/?$ index.php?x=$1 [L]
o si pruebo con una coma
Rewriterule ^([a-zA-Z_-,]+)/?$ index.php?x=$1 [L]
Da error... no lo toma.

Tendré que "escribir" en el regex varios "OR"?
En línea

raul338


Desconectado Desconectado

Mensajes: 2.633


La sonrisa es la mejor forma de afrontar las cosas


Ver Perfil WWW
Re: Todos, menos 1 caracter en REGEX
« Respuesta #4 en: 3 Junio 2010, 01:30 am »

Mira, nunca toque apache, asi que no puedo probar ahora :P

Era cuestion de poner un simple cuantificador :)

Código:
([^/]+)
Vos sabes que, yo tambien lo probé así... y tambien sacandole los corchetes.. pero no funciona.
La direccion:
http://localhost:8084/aaAA.AAaa
No funciona.
Es como que no estuviese funcionando bien... o yo la implemento mal (no creo, porque es muy corto el regex).

Rewriterule ^([^/]+)$ index.php?x=$1 [L]

Eso es por que esa expresion regular es muy generica, planteemos:

^([^/]+)$ aplicado a http://localhost:8084/aaAA.AAaa devuelve 3 cosas:
http:
localhost:8084
aaAA.AAaa

y vos asignando el 1 estas asignando

index.php?x=http: (creo)

Se entiende? La expresion regular funciona, solo que tenes que limitar un poco mas:
Código:
(?:http://)?[^/]+/([^/]+)

Explicado seria:
Código:
(?:http://)?            HTTP, opcional, el protocolo puede estar
[^/]+/                   vendria a ser el dominio y la "/" barra
([^/]+)                 lo que sea despues de la barra :)


Otra cosa!, yo probaria quitando el inicio y fin de linea "^$"
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problema con Regex.Matcher y replaces.
Java
HeXmiT 1 2,698 Último mensaje 15 Enero 2011, 23:25 pm
por HeXmiT
RegEx
.NET (C#, VB.NET, ASP)
CH4ØZ 5 5,446 Último mensaje 16 Septiembre 2011, 00:21 am
por CH4ØZ
RegEx Buddy [Instalador y Portable] [Herramienta]
Programación Visual Basic
Elemental Code 0 4,836 Último mensaje 8 Octubre 2011, 18:54 pm
por Elemental Code
duda con regex
PHP
jhonatanAsm 8 4,327 Último mensaje 28 Abril 2012, 20:32 pm
por engel lex
Dejar en standby todos los aparatos y electrodomésticos de casa son al menos ...
Noticias
wolfbcn 0 1,555 Último mensaje 18 Noviembre 2016, 21:40 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines