Я пытаюсь вытащить данные, содержащиеся в FTP LIST.Python Регулярное выражение Lookahead overhooting pattern
Я использую регулярное выражение в Python 2.7.
test = "-rw-r--r-- 1 owner group 75148624 Jan 6 2015 somename.csv-rw-r--r-- 1 owner group 223259072 Feb 26 2015 somename.csv-rw-r--r-- 1 owner group 4041411 Jun 5 2015 somename-adjusted.csv-rw-r--r-- 1 owner group 2879228 May 13 2015 somename.csv-rw-r--r-- 1 owner group 11832668 Feb 13 2015 somename.csv-rw-r--r-- 1 owner group 1510522 Feb 19 2015 somename.csv-rw-r--r-- 1 owner group 2826664 Feb 25 2015 somename.csv-rw-r--r-- 1 owner group 582985 Feb 26 2015 somename.csv-rw-r--r-- 1 owner group 212427 Feb 26 2015 somename.csv-rw-r--r-- 1 owner group 3015592 Feb 27 2015 somename.csv-rw-r--r-- 1 owner group 103576 Feb 27 2015 somename-corrected.csv"
(теперь без форматирования коды, так что вы можете увидеть его без прокрутки)
теста = «-rw-р - r-- 1 владелец группы 75148624 6 января 2015 somename.csv-RW-р --r-- 1 группа владельцев 223259072 26 февраля 2015 г. somename.csv-rw-r - r-- 1 группа владельцев 4041411 5 июня 2015 г. somename-adjust.csv-rw-r - r-- 1 группа владельцев 2879228 май 13 2015 somename.csv-rw-r - r-- 1 группа владельцев 11832668 13 февраля 2015 г. somename.csv-rw-r - r-- 1 группа владельцев 1510522 19 февраля 2015 г. somename.csv-rw-r - r - 1 группа владельцев 2826664 25 февраля 2015 г. somename.csv-rw-r - r-- 1 группа владельцев 582985 26 февраля 2015 г. somename.csv-rw-r - r-- 1 группа владельцев 212427 26 февраля 2015 г. somename.csv -rw-r-r-- 1 группа владельцев 3015592 27 февраля 2015 somen ame.csv-RW-р - r-- 1 владелец группа 103576 27 февраля 2015 SomeName-corrected.csv»
Я пробовал различные воплощения следующего
from re import compile
ftp_list_re = compile('(?P<permissions>[d-][rwx-]{9})[\s]{1,20}'
'(?P<links>[0-9]{1,8})[\s]{1,20}'
'(?P<owner>[0-9A-Za-z_-]{1,16})[\s]{1,20}'
'(?P<group>[0-9A-Za-z_-]{1,16})[\s]{1,20}'
'(?P<size>[0-9]{1,16})[\s]{1,20}'
'(?P<month>[A-Za-z]{0,3})[\s]{1,20}'
'(?P<date>[0-9]{1,2})[\s]{1,20}'
'(?P<timeyear>[0-9:]{4,5})[\s]{1,20}'
'(?P<filename>[\s\w\.\-]+)(?=[drwx\-]{10})')
с последней строкой, как
'(?P<filename>.+)(?=[drwx\-]{10})')
'(?P<filename>.+(?=[drwx\-]{10}))')
и первоначально,
'(?P<filename>[\s\w\.\-]+(?=[drwx\-]{10}|$))')
так я могу захватить последнюю запись
но независимо от того, я получаю следующий вывод
ftp_list_re.findall(test)
[('-rw-r--r--',
'1',
'owner',
'group',
'75148624',
'Jan',
'6',
'2015',
'somename.csv-rw-r--r-- 1 owner group 223259072 Feb 26 2015 somename.csv-rw-r--r-- 1 owner group 4041411 Jun 5 2015 somename-adjusted.csv-rw-r--r-- 1 owner group 2879228 May 13 2015 somename.csv-rw-r--r-- 1 owner group 11832668 Feb 13 2015 somename.csv-rw-r--r-- 1 owner group 1510522 Feb 19 2015 somename.csv-rw-r--r-- 1 owner group 2826664 Feb 25 2015 somename.csv-rw-r--r-- 1 owner group 582985 Feb 26 2015 somename.csv-rw-r--r-- 1 owner group 212427 Feb 26 2015 somename.csv-rw-r--r-- 1 owner group 3015592 Feb 27 2015 somename.csv')]
Что я делаю неправильно?
я бы подумал, что не спасаясь от дефиса будет проблемой, но это не так. В любом случае, я пробовал его с помощью «\» –
artdv