2010-03-23 4 views
1

У меня есть строка, которая выглядит следующим образом:Сегментная строка в массив, регулярное выражение?

"[segment1][segment2][segment2]" 

То, что я хотел бы, чтобы иметь возможность разделить строку в массив, так что я бы в конечном итоге с:

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

Я попытался использовать функцию разделения строк, но, похоже, она не делает именно то, что я хочу. Мне было интересно, есть ли у кого-нибудь регулярное выражение, которое могло бы помочь мне?

Заранее спасибо

ответ

4

Вы можете взять кусочек строки без первого и последнего символов, а затем разделить на ][:

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

выходы

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

Кроме того, в ответ Тима Pietzcker, вы можете использовать 'S .strip ('[]'). split ('] [') ', используя' .strip() 'вместо среза' [1: -1] '. – Isaac

1

Вы можете использовать re.split() функцию:

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

дает:

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

Edit: Добавлен .strip(), чтобы избежать пустой первый и последний элемент из итоговый список.

Смежные вопросы