Sunteți pe pagina 1din 6

Mdulo 3: Procesamiento de texto usando expresiones regulares y codificaciones

Contenido
1. 2. 3. Manipulacin de Texto y cadenas grandes ........................................................................................................... 2 Uso de expresiones regulares ................................................................................................................................ 3 Codificacin de texto ............................................................................................................................................. 5

Este mdulo describe las principales caractersticas del espacio de nombres System.Text que el. NET Framework proporciona. En l se explica cmo almacenar y manipular cadenas, cmo y cundo aplicar las expresiones regulares, y cmo personalizar las codificaciones para obtener los resultados correctos al procesar el texto. Ejemplo: Validaciones de cadena.

Puntos estratgicos del Curso: Explicar el propsito y el uso de la clase StringBuilder. Describa el propsito de crear y expresiones regulares mediante las clases del espacio de nombres System.Text.RegularExpressions. Describe la codificacin del texto y la forma de codificar y decodificar el texto mediante el uso de las clases de codificacin.

1. Manipulacin de Texto y cadenas grandes


Descripcin general de la clase String . NET Framework utiliza la clase String para procesar texto: Una cadena es un conjunto de caracteres Unicode El . NET Framework implementa una coleccin de objetos String.Char El valor del objeto String es el contenido de la coleccin El objeto String: Permite la manipulacin y el formato de cadenas de texto y determina y localiza sub cadenas dentro de cadenas. Es un tipo de referencia Le permite especificar las reglas de formato de gestin de contenidos Permite administrar la salida para de las operaciones sensibles a cultura Usando la clase String La clase String le permite: Almacenar la informacin de texto Realizar una bsqueda y reemplazo de subcadenas en el objeto String Concatenar varias cadenas en una cadena larga Dividir cadenas largas en varias cadenas ms cortas Buscar la cadena para comprobar si hay apariciones de la subcadena La mayora de los tipos en l. NET Framework contiene un mtodo ToString para devolver la representacin de cadena de un objeto El concepto de inmutabilidad El objeto String es inmutable: Despus se crea el objeto, no se puede cambiar Cualquier mtodo que parece cambiar la cadena devuelve un nuevo objeto String que contiene el cambio Para modificar el contenido de la cadena, utilice la clase StringBuilder Resumen de la clase StringBuilder La clase StringBuilder representa una cadena mutable de caracteres. Se puede aadir, quitar, reemplazar e insertar caracteres, sin crear nuevos objetos La cadena ms larga posible en una instancia de StringBuilder es igual al valor int.MaxValue, el mayor valor que puede contener un nmero entero La capacidad por defecto es de 16 caracteres, sin embargo, un objeto StringBuilder se expande dinmicamente a medida que los caracteres se aaden El mtodo StringBuilder.ToString devuelve el contenido completo del objeto StringBuilder como un objeto String cuando es requerido Utilizar la clase StringBuilder La clase StringBuilder es un miembro del espacio de nombres System.Text StringBuilder myStringBuilder = new StringBuilder(); myStringBuilder.Append("First part of string."); myStringBuilder.AppendFormat("{0} and {1} parts of string.","second", "third"); StringBuilder= Representa una cadena de caracteres moficable no heredable. new StringBuilder();= Inicializas una instancia.

.Append= Anexa al final una copia de la instancia especificada. .AppendFormat= Anexa a la instancia una cadena con formato. Puede ser uno varios. .AppendFormat(Cadena de formato compuesto,Informacion de formato cultural,Cadena de formato compuesta,Cadena del formato computo) Cadena final: "La primera parte de la cadena. Segunda y tercera parte de la cadena"

de

la

referencia

2. Uso de expresiones regulares


Las expresiones regulares proporcionan un mtodo eficaz, flexible y eficiente para el procesamiento de texto. El amplio reconocimiento de patrones notacin de las expresiones regulares le permite analizar rpidamente grandes cantidades de texto para encontrar patrones de caracteres especficos, para validar el texto para asegurarse de que coincide con un patrn predefinido (por ejemplo, una direccin de e-mail), para extraer, editar, reemplazar o eliminar subcadenas de texto, y agregar las cadenas extradas a una coleccin con el fin de generar un informe. Que son las expresiones regulares? Una expresin regular es una secuencia de caracteres que puede: Igualar una cadena para comprobar los requisitos de formato Se utiliza para reemplazar o eliminar datos de una cadena Igualar contra la repeticin de los datos Usar para dar formato o eliminar los datos de caracteres no vlidos Advertencia: las expresiones regulares pueden ser muy complejas: La mayora de los caracteres de las expresiones regulares especiales son contextuales y tienen mltiples usos Un carcter incorrecto en cualquier lugar de la expresin puede hacer que toda la expresin intil Nota: Es una herramienta muy poderosa y pueden aumentar la eficiencia El espacio de nombres y clases de expresiones regulares El . NET Framework proporciona la funcionalidad de expresiones regulares a travs del espacio de nombres System.Text.RegularExpressions: Contiene las clases Regex, Match, y Group. Proporciona otras clases y funciones para expresiones regulares La clase System.Text.RegularExpressions.Regex: Es un punto de aplicacin de las expresiones regulares Permite definir explcitamente las expresiones regulares Proporciona propiedades y mtodos estticos para la implementacion implcita de expresiones regulares Contiene colecciones de las clases Match y Group, que representan los resultados de la evaluacin de expresiones regulares

La formacin de las expresiones regulares Tabla ms extensa Descripcin \ Marca de carcter especial ^ Comienzo de una lnea $ Final de una lnea . Cualquier carcter (menos salto de lnea) | Indica opciones () Agrupar caracteres [] Conjunto de caracteres opcionales

Ejemplo /\$ftp/ /^-/ /s$/ /\b.\b/ /(L|l|f|)ocal/ /(vocal)/ /escrib[aoe]/

Resultado Busca la palabra $ftp Lneas que comienzan por Lneas que terminan por s Palabras de una sla letra Busca Local, local, focal Busca vocal Vale escriba, escribo, escribe

La tabla que sigue describe los modificadores que pueden usarse con los caracteres que forman el patrn. Descripcin Ejemplo Resultado * Repetir 0 o ms veces /l*234/ Valen 234, 1234, 11234... + Repetir 1 o ms veces /a+mar/ Valen amar, aamar, aaamar... ? 1 o 0 veces /a?mar/ Valen amar, mar. {n} Exactamente n veces /p{2}sado/ Vale ppsado {n,} Al menos n veces /(m){2}ala/ Vale mmala, mmmala.... {m,n} entre m y n veces /tal{1,3}a/ Vale tala, talla, tallla Los siguientes son caracteres especiales o meta caracteres para indicar caracteres de texto no imprimibles, como puedan ser el fin de lnea o un tabulador, o grupos predefinidos de caracteres (alfabticos, numricos, etc...) Significado Principio o final de palabra Frontera entre no-palabras Un dgito Alfabtico (no dgito) Carcter nulo Caracter ASCII 9 (tabulador) Salto de pgina Salto de lnea Cualquier alfanumrico, Opuesto a \w Carcter tipo espacio (como tab) Opuesto a \s Carcter de control X Carcter octal NN El hexadecimal hh Ejemplos /\bver\b/ /\Bver\B/ /[A-Z]\d/ /[A-Z]\D/ Resultado Encuentra ver en "ver de", pero no en "verde" Empareja ver con "Valverde" pero no con "verde" No falla en "A4" Fallara en "A4"

\b \B \d \D \O \t \f \n \w \W \s \S \cX \oNN \xhh

[a-zA-Z0-9_ ]/\w+/ ([^a-zA-Z0-9_ ]) /\W/ /\sSi\s/

Encuentra frase en "frase.", pero no el . (punto). Hallara slo el punto (.) Encuentra Si en "Digo Si ", pero no en "Digo Sientate" El tabulador Encuentra la A (ASCII Hex41) en "letra A"

\c9 /\x41/

Coincidencia de patrones mediante expresiones regulares Para que coincida con los patrones mediante el uso de mtodos de instancia de la clase Regex: Crear un objeto Regex, pasando la cadena del modelo como un parmetro a la llamada del constructor Llame a los mtodos IsMatch, Match, or Matches, del objeto Regex, pasando la entrada de la cadena como un parmetro

Extraccin de datos mediante el uso de expresiones regulares Crear una expresin regular que incluyan grupos que coincidan. Crear una instancia del objeto Regex Crear una instancia del objeto coincidente mediante el mtodo instance.Match Recuperar datos mediante el acceso a los miembros de la coleccin Match.Groups

Para que coincida con los patrones de uso de los mtodos estticos de la clase Regex: Como el anterior, excepto: Ignorar el paso 2 Llame al mtodo Regex.Match en el paso 3

3. Codificacin de texto
Qu es la codificacin de texto? Codificacin de texto es el conjunto de caracteres usados para representar datos de cadena: ASCII sigue siendo la base para todos los tipos de codificacin existentes ASCII representa personajes mediante el uso de 7-bits, bytes (128 caracteres) Muchos fabricantes utilizan los valores restantes en un byte (128-255) Los fabricantes diferentes utilizan diferentes formatos Diferentes formatos de conducir a la incompatibilidad La incompatibilidad conduce a la definicin de las pginas estndar cdigo ANSI Unicode tambin cada vez ms frecuente: ~ 100.000 caracteres, nica pgina de cdigos

Uso de la clase Encoding La clase Encoding proporciona varios mtodos tiles para: Devolver un tipo de codificacin a utilizar para codificar el texto Convertir una cadena de entrada en una serie de bytes de una codificacin especfica Proveer soporte para un rango de codificaciones ANSI y ISO

Utilice el mtodo Encoding.GetBytes para convertir cadenas Encoding e = Encoding.GetEncoding("Korean") Byte[] EncodedString; EncodedString = e.GetBytes("Hello, World!"); Encoding = Representa una codificacin de caracteres. .GetEncoding = Devuelve una codificacion asociada al nombre de la pagina de nombres asociada. Byte[] = Representa un entero de 8 bits sin signo. e.GetBytes = Cuando se reemplaza una clase derivada, codifica los caracteres de una clase string a una secuencia de bytes

Especificar el tipo de codificacin a usar Para especificar el tipo de codificacin a utilizar: Proporcionar un valor para el parmetro de codificacin al crear objetos StreamReader y StreamWriter No se puede cambiar la codificacin de un objeto StreamReader StreamWriter o despus de su creacin Si no est seguro que tipo de codificacin a utilizar, no proporcionan un valor del parmetro de codificacin;. NET de forma predeterminada UTF8Encoding.

Nota: Solo Ejercicios, material e-learning, ya visto.