2013-02-13 10 views
0

У меня есть [110308] Asia and India строка, и я хочу только Asia and India как мой результат путем регулярного выражения.Сплит-строка по регулярному выражению

Может ли кто-нибудь мне помочь?

+0

Извините, но regex - это новое для меня. Поэтому я не знаю, как это сделать. –

+0

Итак, вы хотите разбить после первого символа ']' в своей строке или ...? –

+0

@TimPietzcker: Да, я хочу строку после ']'. –

ответ

5

Если вы хотите обойтись без регулярных выражений, вы можете попробовать

>>> '[110308] Asia and India'.split(']', 1)[-1].strip() 
'Asia and India' 

или просто использовать lstrip

>>> '[110308] Asia and India'.lstrip(" []" + string.digits) 
'Asia and India' 

Или, если по причинам, вы хотите придерживаться регулярных выражений

>>> re.findall("^[\[\]\d ]*(.*)"," [110308] Asia and India")[0] 
'Asia and India' 
1
import re 
re.findall('[^0-9\[\]]+', '[110308] Asia and India')[0].strip() 
1

С regex try re размещая [^a-zA-Z ] с пустой строкой.

+0

Что делать, если строка '[123456] St. Thomas Island'? –

+0

Я работал только с примером, но если есть «-» или «.» что необходимо учитывать, тогда он будет читать [^ a-zA-Z \. \ -] – DMK

1
import re 
re.split('[0-9\[\]]+ +', '[110308] Asia and India')[1] 
Смежные вопросы