Expresiones regulares ActionScript VII. Referencias a grupos de captura en la expresión regular

Actionscript 3, Expresiones regulares Sin Comentarios »

Los grupos se definen en una expresión regular como aquellas partes o subpatrones que están entre ( ) paréntesis.

var textoOrigen:String = "Juan 28, Ana 23 y Jose 31 son hermanos."; var expresion:RegExp = new RegExp("([A-Z])(\\w+)\\b\\s+(\\d{1,2})","g");

En el ejemplo hay definidos tres grupos. El primero localiza una letra mayúscula (A-Z), el segundo identifica el resto de caracteres de palabra que hay detrás de una letra mayúscula (\\w+) y el tercero localiza 1 ó 2 dígitos seguidos (\\d{1,2})

En entradas anteriores hemos visto la utilización de grupos con cuantificadores + * ? {n} {n, } {n,m} y con el carácter | (alternador). También hemos visto el uso de grupos de captura en las funciones String.replace() y RegExp.exec. En concreto, se puede utilizar un grupo:

En este post vamos a centrarnos en cómo hacer referencia a grupos de captura dentro de la propia expresión regular.

Leer el resto del contenido »

Expresiones regulares ActionScript VI. Cuantificadores perezosos: *? +? ??

Actionscript 3, Expresiones regulares 1 Comentario »

Las expresiones regulares, por defecto, buscan la coincidencia más larga posible (greedy matching /coincidencia expansiva). A veces necesitamos justo lo contrario, que la coincidencia sea lo más corta posible (lazy matching /coincidencia perezosa). Para ello se puede utilizar el cuantificador ? (cierre de interrogación) en combinación con el cuantificador * (asterisco), el cuantificador + (más) o el propio cuantificador ? (cierre de interrogación). Recordamos que hemos tratado el uso individual de estos metacaracteres de tipo cuantificador en la entrada: Expresiones regulares ActionScript II: metacaracteres en la clase RegExp.

var textoOrigen:String = "<pre>Variable de tipo <String></pre><a>Ejemplo <> vacio</a>"; var expresion:RegExp = new RegExp("<.*>","g"); var resultado:String = textoOrigen.match(expresion).toString(); trace(resultado); /*salida: <pre>Variable de tipo <String></pre><a>Ejemplo <> vacio</a>*/

La expresión regular del ejemplo pretende localizar cualquier etiqueta de apertura o cierre HTML, cualquier cadena encerrada entre los caracteres de < (menor) y > (mayor) o simplemente los caracteres de < (menor) y > (mayor) juntos. Recordemos que el carácter . (punto) buscaba cualquier carácter excepto el salto de línea y que el carácter * es un cuantificador que busca el elemento precedente 0 o más veces.

Leer el resto del contenido »

Expresiones regulares ActionScript V: buscar y reemplazar cadenas con los métodos de la clase String

Actionscript 3, Expresiones regulares 3 Comentarios »

ActionScript proporciona varios métodos para buscar y reemplazar cadenas según el patrón de una expresión regular. Son métodos de dos clases: RegExp y String.

Ya hemos visto en la entrada: Expresiones regulares ActionScript IV: buscar cadenas con métodos de la clase RegExp, los métodos de la clase RegExp. En este post nos centraremos en los métodos de la clase String: search, match y replace.

Método match

match(pattern:*):Array

Devuelve un array con todas las subcadenas que coinciden con el patrón que se ha pasado como parámetro. El valor del parámetro puede ser cualquier tipo de objeto, aunque generalmente es una cadena o una instancia de la clase RegExp. Si no es de ninguno de estos dos tipos se convertirá de forma automática en un String.

Si en la expresión regular, el indicador global g no está establecido a true, el array devuelto sólo contendrá la primera cadena coincidente empezando por el índice 0. Y si no hay coincidencias se devolverá una array vacío.

Vamos a retomar el ejemplo que veíamos en la entrada dedicada a los métodos de la clase RegExp para ver las diferencias entre el método exec de RegExp y el método match de la clase String.

var longitud:Number; var textoSalida:String=""; var textoOrigen:String = "Juan 28, Ana 23 y Jose 31 son hermanos."; var expresion:RegExp = new RegExp("([A-Z])(\\w+)\\b\\s+(\\d{1,2})","g"); var resultado:Array = textoOrigen.match(expresion); longitud = resultado.length; trace("La longitud del array: "+longitud); for(var i:Number = 0;i<longitud;i++) { textoSalida += "Coincidencia "+(i+1)+": "+ "Posicion ["+i+"]: "+resultado[i]+"\n"; } trace(textoSalida); resultado = textoOrigen.match(expresion); /*salida: La longitud del array: 3 Coincidencia 1: Posicion [0]: Juan 28 Coincidencia 2: Posicion [1]: Ana 23 Coincidencia 3: Posicion [2]: Jose 31*/

Este método recupera cada coincidencia y la añade a la posición siguiente del array de resultados. Si el indicador global g, no estuviese establecido en true, sólo obtendríamos la subcadena Juan 28.

Leer el resto del contenido »

Expresiones regulares ActionScript IV: buscar cadenas con métodos de la clase RegExp

Actionscript 3, Expresiones regulares 1 Comentario »

ActionScript proporciona varios métodos para buscar y reemplazar cadenas según el patrón de una expresión regular. Son métodos de dos clases: RegExp y String.

  • RegExp.test()
  • RegExp.exec()
  • String.search()
  • String.match()
  • String.replace()

En esta entrada vamos a ver ejemplos de uso de los métodos de la clase RegExp basándonos en todo lo que hemos tratado en entradas anteriores sobre indicadores, metacaracteres y metasecuencias de expresiones regulares.

  1. Expresiones regulares ActionScript I: indicadores (flags) en la clase RegExp
  2. Expresiones regulares ActionScript II: metacaracteres en la clase RegExp
  3. Expresiones regulares ActionScript III: metasecuencias en la clase RegExp

Leer el resto del contenido »

Expresiones regulares ActionScript III: metasecuencias en la clase RegExp

Actionscript 3, Expresiones regulares 3 Comentarios »

Las metasecuencias son secuencias de caracteres que tienen un significado especial en un patrón de una expresión regular. Por ejemplo, la metasecuencia \d permite buscar cualquier dígito de 0 a 9 en una cadena.

var textoOrigen:String = "Su número de teléfono: 606999345"; var patron:RegExp = /\d+/g; var resultado:String = textoOrigen.match(patron).toString(); trace(resultado); /*salida: 606999345*/

En este ejemplo se recogen todos los números del teléfono gracias a la metasecuencia \d (que localiza cualquier dígito de 0 a 9),  al metacaracter + (que localiza y recoge cualquier dígito que se repita una o más veces) y  al indicador global g (que permite obtener más de un resultado)

Hemos escrito sobre indicadores y metacaracteres en entradas anteriores:

  1. Expresiones regulares ActionScript I: indicadores (flags) en la clase RegExp
  2. Expresiones regulares ActionScript II: metacaracteres en la clase RegExp

Existen 18 metasecuencias en actionscript: {n} {n, } {n,n} \b \B \d \D \f \n \r \s \t \unnn \v \w \W \xnn Vamos a ver cada una con un ejemplo.

Leer el resto del contenido »

WP Theme e Iconos de N.Design Studio adaptado por ASyou
Siguenos: Blog