2010-03-23 3 views
1

J'ai une chaîne qui ressemble à ceci:Chaîne de segment dans le tableau, regex?

"[segment1][segment2][segment2]" 

Ce que je voudrais est de pouvoir diviser la chaîne en un tableau, donc je finirais avec:

Array[0] = "segment1", Array[1] = "segment2", Array[2] = "segment3" 

J'ai essayé d'utiliser la fonction de séparation de chaînes, mais cela ne semble pas faire exactement ce que je veux. Je me demandais si quelqu'un avait un regex qui pourrait m'aider?

Merci à l'avance

Répondre

4

Vous pouvez prendre la tranche de la chaîne sans les premiers et derniers caractères, puis divisés sur ][:

s = "[segment1][segment2][segment2]" 
s[1:-1].split('][') 

sorties

['segment1', 'segment2', 'segment2'] 
+0

En outre, par la réponse de Tim Pietzcker, vous pouvez utiliser 's .strip ('[]'). split ('] [') ', en utilisant' .strip() 'au lieu de la tranche' [1: -1] '. – Isaac

1

Vous pouvez utiliser la fonction re.split():

subject = "[segment1][segment2][segment2]" 
reobj = re.compile("[][]+") 
result = reobj.split(subject.strip("[]")) 
print result 

vous donne:

['segment1', 'segment2', 'segment2'] 

Edit: Ajout d'un .strip() pour éviter un élément premier et le dernier vide de la liste résultante.