Python, “splits” amb expresions regulars

Avui he descobert un mòdul de Python amb una funció molt i molt interessant re.split. Segurament és una xorrada, però és ben útil. Per què? per que separa elements d’una cadena fent ús de diferents patrons. La funció que jo emprava fins al moment, split, és útil quan per separar una cadena hi ha només un element comú.

Un exemple ben clar: una molècula. Tinc la cadena següent: C-C-N-C-O. Per separar els diferents àtoms és ben senzill, simplement cal fer un split indicant que el separador és el guionet -. La funció retorna un array.

molecule = ‘C-C-N-C-O’
atoms_array = molecule.split(’-',”)

Ara, imaginem una molècula on, a banda dels enllaços senzills (-) en tenim de dobles i triples (= i #, respectivament i en notació SMILE). La cadena exemple seria: C#C-N-C=O. Aquí, els marcadors que separen els diferents àtoms no segueixen un únic patró i poden ser -, = i #. La funció anterior no ens serveix. Aquí és on entra en joc la funció que he comentat:

import re
molecule = ‘C#C-N-C=O’
atoms_array = re.split(’[\-\=\#]‘,molecule)

El patró, aquí \-\=\#, pot ser divers: símbols, lletres, números, qualsevol dígit número enter,… En fi, per mi m’és molt còmode :-)

1 comment:

  1. El meu dip » Python, "splits" amb expresions regular (Pingback), 26. September 2008, 20:01
     

    [...] Continua llegint: Python, “splits” amb expresions regular [...]

     

Write a comment: