Сегментировать строку в массив, регулярное выражение?

1

У меня есть строка, которая выглядит так:

"[segment1][segment2][segment2]"

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

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

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

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

Теги:

2 ответа

4
Лучший ответ

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

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

выходы

['segment1', 'segment2', 'segment2']
  • 0
    Также, согласно ответу Тима Пицкера, вы можете использовать s.strip('[]').split('][') , используя .strip() вместо слайса [1:-1] .
1

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

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

дает вам:

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню