Форум сайта python.su
Добрый день.
Не получается написать регулярку, которая отбрали импортируемые модули, сейчас она выдает все включая import, хотелось бы чтобы import отсутствовал в результатах, но при этом именно с него должна начинаться строка
import re pattern = r"(?:(\b\w+\b)[, ]?)" string1 = " import oss,sys,fff,gogg" result = re.findall(pattern,string1) #>>>result = ['import', 'oss', 'sys', 'fff', 'gogg']
pattern = r"^(?:[ ]+)?import ([A-z/.0-9]*)"
Офлайн
string1 = " import oss,sys,fff,gogg" s = re.findall(str_, "import .*") result = [x.strip() for x in s.split(',')]
Офлайн
import ast
Офлайн
sergeekда, я знаю что можно было импортнуть всю строку с начала импорта до конца или до точки с запятой, но и потом обработать питоном, но чего уж очень хочется через re
Офлайн
тогда вот еще пара примеров:
re.findall('\w+', re.match(' *import (.+)','import ast, re').group(1)) Out[93]: ['ast', 're'] re.split('\W+', re.match(' *import (.+)','import ast, re').group(1)) Out[94]: ['ast', 're'] re.findall('\w+','import ast, re')[1:] Out[95]: ['ast', 're']
Отредактировано sergeek (Окт. 29, 2012 13:53:16)
Офлайн