23.11.2012 Views

Python para todos

Python para todos

Python para todos

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Expresiones regulares<br />

tenemos funciones disponibles <strong>para</strong> dividir la cadena o realizar reemplazos.<br />

La función split sin ir más lejos toma como parámetros un patrón,<br />

una cadena y un entero opcional indicando el número máximo de<br />

elementos en los que queremos dividir la cadena, y utiliza el patrón a<br />

modo de puntos de se<strong>para</strong>ción <strong>para</strong> la cadena, devolviendo una lista<br />

con las subcadenas.<br />

La función sub toma como parámetros un patrón a sustituir, una<br />

cadena que usar como reemplazo cada vez que encontremos el patrón,<br />

la cadena sobre la que realizar las sustituciones, y un entero opcional<br />

indicando el número máximo de sustituciones que queremos realizar.<br />

Al llamar a estos mé<strong>todos</strong> lo que ocurre en realidad es que se crea un<br />

nuevo objeto de tipo RegexObject que representa la expresión regular, y<br />

se llama a mé<strong>todos</strong> de este objeto que tienen los mismos nombres que<br />

las funciones del módulo.<br />

Si vamos a utilizar un mismo patrón varias veces nos puede interesar<br />

crear un objeto de este tipo y llamar a sus mé<strong>todos</strong> nosotros mismos;<br />

de esta forma evitamos que el intérprete tenga que crear un nuevo<br />

objeto cada vez que usemos el patrón y mejoraremos el rendimiento de<br />

la aplicación.<br />

Para crear un objeto RegexObject se utiliza la función compile del<br />

módulo, al que se le pasa como parámetro la cadena que representa el<br />

patrón que queremos utilizar <strong>para</strong> nuestra expresión regular y, opcionalmente,<br />

una serie de flags de entre los que comentamos anteriormente.<br />

91

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!