<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_Python%2FRegEx-1</id>
	<title>Curso de Programación en Python/RegEx-1 - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.cabal.mx/index.php?action=history&amp;feed=atom&amp;title=Curso_de_Programaci%C3%B3n_en_Python%2FRegEx-1"/>
	<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_Python/RegEx-1&amp;action=history"/>
	<updated>2026-05-18T12:45:46Z</updated>
	<subtitle>Historial de revisiones para esta página en el wiki</subtitle>
	<generator>MediaWiki 1.32.1</generator>
	<entry>
		<id>http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_Python/RegEx-1&amp;diff=119541&amp;oldid=prev</id>
		<title>Rrc en 19:55 19 dic 2015</title>
		<link rel="alternate" type="text/html" href="http://wiki.cabal.mx/index.php?title=Curso_de_Programaci%C3%B3n_en_Python/RegEx-1&amp;diff=119541&amp;oldid=prev"/>
		<updated>2015-12-19T19:55:08Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;= RegEx =&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Expresiones regulares (llamadas REs, o regexes o los patrones regex) son esencialmente un pequeño,&lt;br /&gt;
lenguaje especializado de programación embebido dentro de Python y disponible a través del re módulo.&lt;br /&gt;
Usando este lenguaje para especificar las reglas de posibles cadenas de caracteres que desea buscar;&lt;br /&gt;
Este conjunto puede contener frases, o direcciones de correo electrónico, o comandos de TeX o algo&lt;br /&gt;
que te guste. Puedes entonces hacer preguntas como &amp;quot;Esta cadena coincide con el patrón?&amp;quot;, o &lt;br /&gt;
&amp;quot;Es un partido para el patrón en cualquier lugar de esta cadena?&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
 También puede utilizar REs a modificar una cadena o dividirlo en varias formas.&lt;br /&gt;
&lt;br /&gt;
El lenguaje de la expresión regular es relativamente pequeño y restringido, así que &lt;br /&gt;
no todo el procesamiento de RegEX es  posible&lt;br /&gt;
&amp;lt;/pre&amp;gt;.&lt;br /&gt;
=== RegEx Meta Caractares ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Los Meta Caractares son:&lt;br /&gt;
&lt;br /&gt;
                         . ^ $ * + ? { } [ ] \ | ( )&lt;br /&gt;
&lt;br /&gt;
Los metacaracteres &amp;#039;[&amp;#039; y &amp;#039;]&amp;#039; son usados para especificar un clase de caracteres que&lt;br /&gt;
quieres coincidir. Puedes especificar los caracteres individualmente o en rangos&lt;br /&gt;
de caracteres.Entonces; [abc] coincide con algún de los &lt;br /&gt;
caracteres &amp;#039;a&amp;#039;, &amp;#039;b&amp;#039;, o &amp;#039;c&amp;#039; y [a-c], es decir  el rango de caracteres &amp;#039;a&amp;#039; a &amp;#039;c&amp;#039;.&lt;br /&gt;
Si quieres buscar solo caracteres minusculas puedes escribir [a-z]. Si quieres incluir&lt;br /&gt;
un &amp;#039;-&amp;#039; en el expresion, debe ser el primer or final caracter en las corchetas. [-0-9]&lt;br /&gt;
o [a-zA-Z0-9-]&lt;br /&gt;
&lt;br /&gt;
Metacaracteres no son activos a dentro de clases, entonces; [akm$] coincide a algún de&lt;br /&gt;
los caracteres &amp;#039;a&amp;#039;, &amp;#039;k&amp;#039;, &amp;#039;m&amp;#039;, or &amp;#039;$&amp;#039;. &amp;#039;$&amp;#039; normalmente es un metacaracter, pero adentro&lt;br /&gt;
de la clase de caracteres, el pierde su caracteristicas de metacaracter.&lt;br /&gt;
&lt;br /&gt;
El caracter &amp;#039;^&amp;#039; usado como el primer caracter adentro de un class puede coincidir a&lt;br /&gt;
caracteres no espesificados. Entonces [^5] coincede a algún caracter que no es &amp;#039;5&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Un metacaracter muy importante en Python RegEx es el diagonal; &amp;#039;\&amp;#039;. Asi cómo en literales&lt;br /&gt;
de cadenas de Python, el &amp;#039;\&amp;#039; seguida con varios caracters indica sequencias de significos&lt;br /&gt;
especiales. Se usa también para escapar otro metacaracters para utilizarlas en los patrones&lt;br /&gt;
entoces puedes escribir &amp;#039;\[&amp;#039; para indicar el metacaracter &amp;#039;[&amp;#039; literalmente y &lt;br /&gt;
\\&amp;#039; para indicar el metacaracter &amp;#039;\&amp;#039; literalmente.&lt;br /&gt;
&lt;br /&gt;
Algúnas de las sequencias de caracteres especiales representan caracteres muy utiles como&lt;br /&gt;
unidades de digitos o letras o espacio blanco, Por ejemplo &amp;#039;\w&amp;#039; coincide can algún caracter&lt;br /&gt;
alfannumérico que puede representar con [a-zA-Z0-9_].&lt;br /&gt;
&lt;br /&gt;
Algunos de los sequencias especiales:&lt;br /&gt;
&lt;br /&gt;
\d    Algún digito decimal [0-9].&lt;br /&gt;
\D    Ningún digito decimal [^0-9].&lt;br /&gt;
\s    Algún caracter de espacio blanco [ \t\n\r\f\v].&lt;br /&gt;
\S    Ningún caracter de espacio blanco [^ \t\n\r\f\v].&lt;br /&gt;
\w    Algún caracter alfanumerico [a-zA-Z0-9_].&lt;br /&gt;
\W    Ningún caracter alfanumerico [^a-zA-Z0-9_].&lt;br /&gt;
&lt;br /&gt;
Puedes incluir las sequencias de caracteres especiales en una clase por ejemplo:&lt;br /&gt;
[\s,.] coresponde a algún caracter de espacio blanco, o &amp;#039;,&amp;#039; o &amp;#039;.&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
La sequencia especial &amp;#039;.&amp;#039; coresponde a algún caracter con excepción de&lt;br /&gt;
línea nueva. Existe también (re.DOTALL) que coresponde a algún caracter, línea nueva incluida.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Repetición ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Puede especificar que partes de la RE se deben repetir un determinado número de veces.&lt;br /&gt;
&lt;br /&gt;
El primer metacaracter para repetir cosas que vamos a ver es *. * No coincide con el &lt;br /&gt;
caracter literal &amp;#039;*&amp;#039;, se especifica que el caracter anterior se puede emparejar cero &lt;br /&gt;
o más veces, en lugar de una sola vez.&lt;br /&gt;
&lt;br /&gt;
Por ejemplo, ca*t coincidirá a ct; (0 a caracteres), cat; (1 a caracter), &lt;br /&gt;
caaat; (3 a caracteres ), y así sucesivamente. El motor RE tiene varias limitaciones &lt;br /&gt;
internas derivadas del tamaño del de C tipo int que evitar que se emparejan más de &lt;br /&gt;
2 mil millones a los patrones repitidos. Generalmente no se escriben para que coincida &lt;br /&gt;
con la cantidad de datos.&lt;br /&gt;
&lt;br /&gt;
Otra metacaracter de repetición es +, lo que coincide con una o más veces. Preste especial&lt;br /&gt;
atención a la diferencia entre * y +; * Coincide con cero o más veces, entonces&lt;br /&gt;
lo que sea que se repiten pueden no estar presentes en absoluto, mientras + requiere al menos un&lt;br /&gt;
aparición. Para usar un ejemplo similar, ca + t coincidirá gato (un 1), caaat (3 de una),&lt;br /&gt;
pero no coincidirá ct.&lt;br /&gt;
&lt;br /&gt;
Hay dos más calificadores de repetición. El carácter de signo de interrogación,?, Coincide&lt;br /&gt;
ya sea una o cero veces; se puede pensar en ello como algo que marca como opcional.&lt;br /&gt;
Por ejemplo, Hacer-?lo coincide a Hacer-lo y también Hacerlo.&lt;br /&gt;
&lt;br /&gt;
El más complicado calificador re repetición es {m, n}, donde m y n son números enteros decimales.&lt;br /&gt;
Este calificativo significa que debe haber al menos m repeticiones, y como máximo n. Por ejemplo,&lt;br /&gt;
a/{1,3}b coincidirá con a/b, a//b, y a///b. No va a coincidir con ab, que no tiene barras,&lt;br /&gt;
o a////b, que tiene cuatro barras.&lt;br /&gt;
&lt;br /&gt;
Puede omitir cualquiera de m o n; en ese caso, un valor razonable se asume para el que falta&lt;br /&gt;
valor. Omitiendo m es interpretado como un límite inferior de 0, mientras que omite n resulta en una&lt;br /&gt;
límite superior del infinito - de hecho, el límite superior es el límite de 2 millones millones&lt;br /&gt;
&lt;br /&gt;
Los otros tres clasificados pueden ser todos&lt;br /&gt;
expresado usando esta notación. {0,} es el mismo que &amp;#039;*&amp;#039;, {1,} es equivalente a &amp;#039;+&amp;#039;,&lt;br /&gt;
y {0,1} es el mismo que &amp;#039;?&amp;#039;. Es mejor usar &amp;#039;*&amp;#039;, &amp;#039;+&amp;#039;, o &amp;#039;?&amp;#039; cuando se puede, simplemente porque&lt;br /&gt;
son más cortos y fáciles de leer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Coincidir con caracteres especiales ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Este módulo proporciona RegEx operaciones similares a las encontradas en Perl.&lt;br /&gt;
Ambos patrones y cadenas a ser buscados pueden ser cadenas Unicode, así como cadenas de 8 bits.&lt;br /&gt;
&lt;br /&gt;
Las expresiones regulares utilizan el caracter de barra invertida (&amp;#039;\&amp;#039;) para indicar las formas especiales o para permitir&lt;br /&gt;
caracteres especiales para ser utilizados sin necesidad de invocar su significado especial. Esto choca con Python&lt;br /&gt;
el uso del mismo caracter para el mismo propósito en los literales de cadena; por ejemplo, para que coincida con una&lt;br /&gt;
barra invertida literal, uno podría tener que escribir &amp;#039;\\\\&amp;#039; como la cadena de modelo, ya que el normal&lt;br /&gt;
expresión debe ser \\, y cada barra invertida debe ser expresado como \\ dentro de una cadena literal.&lt;br /&gt;
&lt;br /&gt;
La solución es utilizar la notación cadena raw de Python para patrones de expresiones regulares; barras invertidas&lt;br /&gt;
no se manejan de un modo especial en una cadena literal con el prefijo &amp;quot;r&amp;quot;. Así r&amp;quot;\n&amp;quot; es un caracter especial de dos&lt;br /&gt;
caracteres que contiene &amp;#039;\&amp;#039; y &amp;#039;n&amp;#039;, mientras que &amp;quot;\n&amp;quot; es una cadena de un caracter que contiene una nueva línea. &lt;br /&gt;
Normalmente patrones se expresarán en código Python usando esta notación de cadena raw&lt;br /&gt;
&lt;br /&gt;
Es importante tener en cuenta que la mayoría de las operaciones de expresiones regulares están disponibles como funciones de nivel de módulo&lt;br /&gt;
y los métodos RegexObject. Las funciones son atajos que no requieren para compilar un objeto de expresión regular&lt;br /&gt;
primero, pero falta algunos parámetros de ajuste.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
      Regular String&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
    &amp;lt;th&amp;gt;&lt;br /&gt;
      Raw string&lt;br /&gt;
    &amp;lt;/th&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;amp;quot;ab*&amp;amp;quot;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      r&amp;amp;quot;ab*&amp;amp;quot;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;amp;quot;\\\\section&amp;amp;quot;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      r&amp;amp;quot;\\section&amp;amp;quot;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
  &amp;lt;tr&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      &amp;amp;quot;\\w+\\s+\\1&amp;amp;quot;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
    &amp;lt;td&amp;gt;&lt;br /&gt;
      r&amp;amp;quot;\w+\s+\1&amp;amp;quot;&lt;br /&gt;
    &amp;lt;/td&amp;gt;&lt;br /&gt;
  &amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Programación en Python]]&lt;br /&gt;
[[Category:PythonCabal]]&lt;br /&gt;
[[Category:CursoPython]]&lt;/div&gt;</summary>
		<author><name>Rrc</name></author>
		
	</entry>
</feed>