Если вы не ищете общее решение для преобразования какого-либо регулярного выражения в строку форматирования, но то, что вы можете жестко закодировать:
twitter_url = 'twitter.com/%(username)s/' % {'username': 'dir01'}
... должно дать вам то, что вам нужно.
Если вам нужно более общее (но не невероятно надежное решение):
import re
def format_to_re(format):
# Replace Python string formatting syntax with named group re syntax.
return re.compile(re.sub(r'%\((\w+)\)s', r'(?P<\1>\w+)', format))
twitter_format = 'twitter.com/%(username)s/'
twitter_re = format_to_re(twitter_format)
m = twitter_re.search('twitter.com/dir01/')
print m.groupdict()
print twitter_format % m.groupdict()
Дает мне:
{'username': 'dir01'}
twitter.com/dir01/
И, наконец, немного большее и более полное решение, которое яЯ использую себя можно найти в Pattern
класс здесь .