Не уверен, что это то, что должно быть щедростью.Я просто хочу лучше понять регулярное выражение.
Я проверил ответы в регулярном выражении на совпадение с pattern.one пропускает символы новой строки и символы до тех пор, пока pattern.two и Regex не совпадут, если дан текстне найден и соответствует как можно меньшему количеству потоков и прочитал о Tempered Greedy Token Solutions
и Explicit Greedy Alternation Solutions
в RexEgg, но по общему признанию объяснения сбили меня с толку.
Последний день я потратил в основном на re.sub(и с помощью findall), потому что поведение re.sub для меня странно.
.
Задача 1:
Ниже приведены строки с символами, за которыми следует/
как бы я создал одно регулярное выражение (используя только re.sub или re.findall), использующее чередующиеся группы захвата, которые должны использовать [\S]+/
, чтобы получить желаемый результат
>>> string_1 = 'variety.com/2017/biz/news/tax-march-donald-trump-protest-1202031487/'
>>> string_2 = 'variety.com/2017/biz/the/life/of/madam/green/news/tax-march-donald-trump-protest-1202031487/'
>>> string_3 = 'variety.com/2017/biz/the/life/of/news/tax-march-donald-trump-protest-1202031487/the/days/of/our/lives'
Желаемый результат с учетом условий (!!)
tax-march-donald-trump-protest-
УСЛОВИЯ: должны использовать чередующиеся группы захвата, которые должны захватывать ([\S]+)
или ([\S]+?)/
, чтобы захватить другие группы, но игнорировать их, еслиони не содержат-
Я ХОРОШО ЗНАЮ, что было бы лучше использовать re.findall('([\-]*(?:[^/]+?\-)+)[\d]+', string)
или что-то подобное, но я хочу знать, могу ли я использовать [\S]+
или ([\S]+)
или([\S]+?)/
и скажите регулярному выражению, что если они захвачены, игнорируйте результат, если он содержит /
или не содержит -
, хотя также использовал чередующуюся группу захвата
IЯ знаю, что мне не нужно использовать [\S]+
или ([\S]+)
, но я хочу посмотреть, есть ли дополнительная директива, которую я могу использовать, чтобы заставить регулярное выражение отклонять некоторые символы, которые эти два обычно захватывали бы.