2016-09-10 2 views
1

Get a list of subdirectories После, я получил строки этой формы:Найти подстроку между/и

In [30]: print(subdir) 
foousa   0 2016-09-07 19:58 /projects/foousa/obama/trump/10973689-Parthenon 
drwx------ - 

и когда я пытаюсь это answer:

In [23]: print find_between(subdir, "/", "\\") 


In [24]: print find_between(subdir, "\/", "\\") 

Я не получить ничего, может быть, новая строка только ... То, к чему я стремился, это 10973689-Parthenon.

Что мне не хватает?

Я использую , но я не мог видеть, как это было важно ...

+0

\ n - новый символ линии. В этой строке может быть не \. Я предполагаю, что он просто печатает пустую строку. –

+0

@ RobertPrévost правильно, но я не понимаю, что вы говорите. 'subdir' - это то, что я показал выше, и' 10973689-Parthenon' - это то, что я хочу извлечь. – gsamaras

+0

Попробуйте выполнить печать (subdir) или subdir.index ('\ n'). Я получаю find_between_r (subdir, '/', '\ n'). –

ответ

1

Использование re:

import re 

subdir = ' foousa   0 2016-09-07 19:58 /projects/foousa/obama/trump/10973689-Parthenon\ndrwx------ - ' 
match = re.search(r'/([^/\n]+)\n', subdir) 
print(match.group(1)) 

Использование индексов:

subdir = ' foousa   0 2016-09-07 19:58 /projects/foousa/obama/trump/10973689-Parthenon\ndrwx------ - ' 
begin = subdir.rindex('/') + 1 
end = subdir.rindex('\n') 
result = subdir[begin:end] 
print(result) 

выход:

10973689-Parthenon 
+0

Вы уверены? Я получаю 'AttributeError: объект NoneType 'не имеет атрибута' group''. – gsamaras

+0

, тогда вы действительно уверены, что '\ n' на самом деле не является новой строкой? relpace '\\' в regex в '\ n' и повторите попытку. – DJV

+0

@gsamaras, как вы можете видеть сами: https://repl.it/D1ql – njzk2

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