Как разбить строку, соответствующую шаблону в Python - PullRequest
1 голос
/ 11 ноября 2009

У меня есть строка, похожая на эту:

'Toy Story..(II) (1995)'

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

['Toy Story..(II)','1995']

Как я могу это сделать? Спасибо.

Ответы [ 4 ]

4 голосов
/ 11 ноября 2009

Этот код поможет вам начать:

'Toy Stroy..(II) (1995)'.rstrip(')').rsplit('(',1)

Кроме этого, вы можете использовать r'\s*[(]\d{4}[)]\s*$' для сопоставления четырехзначного числа в скобках в конце строки. Если вы найдете его, вы можете отрубить его:

s = ''
l = [s]
match = re.compile(r'\s*[(]\d+[)]\s*$').search(s)
if match is not None:
    l = [s[:len(match.group(0))], s[-len(match.group(0)):].trim]
1 голос
/ 11 ноября 2009

Одним из способов является это:

s = 'Toy Stroy..(II) (1995)'
print s[:s.rfind('(')].strip()
print s[s.rfind('('):].strip("()")

Выход:

Toy Stroy..(II)
1995
>>> 
0 голосов
/ 11 ноября 2009
l[:-1].split("(")
0 голосов
/ 11 ноября 2009

Вы можете использовать регулярные выражения для этого. Смотрите здесь: http://www.amk.ca/python/howto/regex/

Или вы можете использовать функцию разделения, а затем вручную удалить скобки или другие ненужные символы. Смотрите здесь: http://www.python.org/doc/2.3/lib/module-string.html

...