您首先需要格式化字符串,然后使用正则表达式。将所有内容放在一行中确实不值得。通过将花括号加倍来进行转义:
>>> pat= '^(w{{3}}.)?([0-9A-Za-z-]+.){{1}}{domainName}$'.format(domainName = 'delivery.com')>>> pat'^(w{3}\.)?([0-9A-Za-z-]+\.){1}delivery.com$'>>> re.match(pat, str1)另外,
re.match在字符串的开头匹配,
^如果使用
re.match,则不必放置,但是,如果需要,
^则需要放置
re.search。
请注意,
{1}在正则表达式中是相当多余的。


