Tengo un problema con la aserción de búsqueda anticipada (? =). Por ejemplo, tengo la expresión:Regex: aserción de búsqueda anticipada
/Win(?=2000)/
Se coincide Win
, si la expresión es como Win2000
, Win2000fgF
. Tengo siguiente expresión:
^(?=.*\d)(?=.*[a-z]).*$
Se han encontrado para dígitos y letras minúsculas, por ejemplo: 45dF
, 4Dd
. Pero no sé, por qué funciona y coincide con todos los personajes :) No tengo caracteres, que están antes de (?=.*\d)
. Creo que, sólo que esta expresión debe trabajar:
^.\*(?=.*\d)(?=.*[a-z]).*$
(con \*
antes de expresión).
¿Podría explicarlo?
Gracias por una gran explicación. ¿Podría decirme por qué^(? =. * \ D) (? =. * [A-z]) $ (sin. * Al final) no funciona para 2a? Esta expresión regular debe coincidir? – luk4443
Bueno, imagine que omite el paso 10: el motor de expresiones regulares todavía está en la posición 0, por lo que falla al hacer coincidir el '$'. –
Ok, gracias :) – luk4443