Código PHP:
^(?=aa)b
Código PHP:
if(preg_match('/^(?=aa)b/',$lna)){
echo $lna.'<br>';
}
| |||
Que hace esta expresion regular Hola, ¿que hace esta expresión regular ? Código PHP: Código PHP: |
| ||||
Respuesta: Que hace esta expresion regular La expresión es bastante ambigua, ¿la has escrito tu? Mas o menos significaría algo así como "lo que sea que empiece (no se sabe qué) y continúe con una doble a seguida de una b" Y bueno, si lo piensas un poco no tiene nada de sentido, así que tu suposición es falsa. Yo también hice varias pruebas y no captura lo que dices. ¿Qué tratas de resolver? PDTA: también hay un foro de RegExp para que no tengas que publicar donde se te de la gana. www.forosdelweb.com/f183/
__________________ Y U NO RTFM? щ(ºдºщ) No atiendo por MP nada que no sea personal. |
| |||
Respuesta: Que hace esta expresion regular Bueno si lo escribí yo por curiosidad ya que con
Código:
obtenia todas las cadenas que tienen aa al inicio, pense que con ^(?=aa)
Código:
obtendría todas las cadenas que empiezan con aa y que les sigue una b por ejemplo aannb aabfh ....^(?=aa)b Seguiré repasando gracias |
| |||
Respuesta: Que hace esta expresion regular La sintaxis "?=" es sintaxis extendida de expresiones regulares, y hace lo que se conoce como "look ahead" (mirar hacia adelante). En la práctica funciona como un condicional, y la expresión dentro del look ahead NO consume caracteres de la cadena. El motivo por el que no funciona es que la expresión ^(?=aa)b quiere decir, aproximadamente: "busca una b al principio de la cadena SOLAMENTE si la misma comienza con "aa". Como el look ahead no consume caracteres, tanto éste como la "b" quedan asociados al ancla ^. La cadena "aab" pasa la prueba del look ahead, pero no coincide con la expresión porque no comienza con una b. Rápidamente podemos concluir que ninguna cadena coincide con ese patrón, porque tiene el doble requisito de comenzar con una b y con "aa". Usa el patrón que te sugiere paketetrueke, ese sí hace lo que necesitás. Dicho sea de paso, ¿no estarías queriendo usar "?:" en vez de "?="? La forma ?: denota un grupo que no captura los datos que coinciden, puede ser más eficiente. Saludos. |
Etiquetas: |