Ver Mensaje Individual
  #417 (permalink)  
Antiguo 26/05/2011, 07:30
Hidek1
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 15 años, 1 mes
Puntos: 334
Respuesta: Juego: "¿Dónde está el error?"

Cita:
Iniciado por abimaelrc Ver Mensaje
A pues voy a dejar que otro conteste, así como hiciste, jajajaja

Además no pides un porque en el primer post

Edito: Es que no puedo dejarlo sin contestación, La razón es porque el simbolo | lo que dice que verifique el patrón de la izquierda, que en el caso de que no tuviera el - debería hacer un match de algo similiar a A123 (porque lo que haces es algo como (A-Z){1}(0-9){3} un caracter y tres números) o el de la derecha que solo dice que verifica un match que tenga de la a a la z y que sean tres caracteres. Como el primero no se cumple, entonces el segundo sí y eso es lo que muestra. Ahora cuando se le añade el simbolo de -, entonces el patrón busca primero si existe algo como A-123 (porque lo que haces es algo como (A-Z){1}-(0-9){3} un caracter, el simbolo de menos y tres dígitos). Al encontrar el match, ya es suficiente y no continúa porque el preg_match busca la primera ocurrencia. Para más información de lo que hace (?<=.......) recomiendo esta lectura http://www.php.net/manual/en/regexp....assertions.php


mi idea era usar las condicionales dentro del las regex
http://www.php.net/manual/en/regexp....onditional.php

Código pcre:
Ver original
  1. (?(condition)true|false)

... intentare armar otro ejercicio con pcre... mientras tanto sedo el lugar


------
PD: recuerda que los rangos a-z, 0-9, etc.... se pueden especificar dentro de corchetes y no de paréntesis
__________________
More about me...
~ @rhyudek1
~ Github