首页 > 解决方案 > 有没有一种优雅的方法可以从 Python 中的给定正则表达式模式构建字符串?

问题描述

假设我有一个这样定义的模式:

import re
pattern = re.compile(r'http\://(?P<host>\d+\.\d+\.\d+\.\d+)\:(?P<port>\d+)')

此模式帮助我解析要提取的字符串hostport参数。但是如果需要一个反向操作:使用这个模式hostport值构建一个字符串呢?有没有一种优雅的方式来做到这一点?或者我必须为此目的定义一个单独的字符串模式来格式化?

import re
pattern = re.compile(r'http\://(?P<host>\d+\.\d+\.\d+\.\d+)\:(?P<port>\d+)')

values = {'host': '192.168.1.5', 'port': 80}
s = some_elegant_function(pattern, values)  # <--- What is here???

print(s)  # http://192.168.1.5:80 - expected result

我看过这个问题:Generate a String that match a RegEx in Python

它没有提供答案,因为主题是关于一组相关的输出字符串,而没有传递我需要的任何参数。

标签: pythonregex

解决方案


推荐阅读