Sobre expresiones regulares
Publicado: 11 Ene 2012, 08:20
Bueno, pues desde no hace mucho, me puse con las ER enserio, y al final, vatallando con la documentación en español, he conseguido entenderlas y lo mejor, usarlas :).
Pero hay todavía algo que: o bien no entiendo de la documentación, o no se usar.
Imagino que eso que he copiado, biene a decir, que un grupo no-captador, no guarda en el array de coincidencias lo que coincida en la cadena revisada, con lo que este contenga; y bueno, lo demás, supongo que quiere decir algo así, como que no puede usarse la coincidencia en stringregexpreplace, como referencia (con $1, etc).
Vaya, que entiendo que los grupos no-captadores, coinciden con el patrón dado, pero descartan lo que contengan.
Si es como digo, debe ser que no se usar esos grupos, porque por ejemplo, hago algo como esto:
Se supone, que la ER anterior, debería devolver sólo los dígitos que haya después de uno o más & ¿verdad?. Pues no me funciona :).
¿Por qué?. Eso es lo que no se ... :).
A ver si alguien que domine más las ER sabe explicarme eso de los grupos no captadores, y como usarlos.
Y ya puestos con las ER, a ver si alguien sabe explicarme eso de las referencias en StringRegExpReplace(), porque si intento usarlas para sustituir una coincidencia encontrada poniendo una referencia dentro de una función (anidada en StringRegExpReplace() como sustitución) no me funciona, sólo si la uso directamente.
Salu2!
Pero hay todavía algo que: o bien no entiendo de la documentación, o no se usar.
Bueno. Suelo leer la documentación en español, porque más que la inglesa, desde luego, la entiendo. Aunque, muchas veces pienso que seguro que entendería mejor la inglesa... :P.(?: ... ) Grupo no-captador. Se comporta simplemente como un grupo normal, pero no guarda los caracteres coincidentes en el arreglo tampoco puede el texto coincidido será usado para volver a referenciar.
Imagino que eso que he copiado, biene a decir, que un grupo no-captador, no guarda en el array de coincidencias lo que coincida en la cadena revisada, con lo que este contenga; y bueno, lo demás, supongo que quiere decir algo así, como que no puede usarse la coincidencia en stringregexpreplace, como referencia (con $1, etc).
Vaya, que entiendo que los grupos no-captadores, coinciden con el patrón dado, pero descartan lo que contengan.
Si es como digo, debe ser que no se usar esos grupos, porque por ejemplo, hago algo como esto:
Código: Seleccionar todo
(?:\x26)+[[:digit:]]+
¿Por qué?. Eso es lo que no se ... :).
A ver si alguien que domine más las ER sabe explicarme eso de los grupos no captadores, y como usarlos.
Y ya puestos con las ER, a ver si alguien sabe explicarme eso de las referencias en StringRegExpReplace(), porque si intento usarlas para sustituir una coincidencia encontrada poniendo una referencia dentro de una función (anidada en StringRegExpReplace() como sustitución) no me funciona, sólo si la uso directamente.
Salu2!