python 如何创建一个正则表达式来替换url?

h43kikqp  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(122)

例如,我尝试使用re.sub()创建一个正则表达式,它可以替换字符串中的URL。

tool(id='merge_tool', server='http://localhost:8080')

我创建了一个正则表达式,它返回一个字符串,如下所示。

a = "https:192.168.1.1:8080"

 re.sub(r'http\S+', a, "tool(id='merge_tool', server='http://localhost:8080')")

结果:

"tool(id='merge_tool', server='https:192.168.1.1"

或者,如果我提供此URL:

b = 'https:facebook.com'

 re.sub(r'http\S+', b, "tool(id='merge_tool', server='http://localhost:8080')")

结果:

"tool(id='merge_tool', server='https:facebook.com"

如何解决这个问题,使它可以返回整个字符串后,取代网址?

xe55xuns

xe55xuns1#

您可以使用

re.sub(r"http[^\s']+", b.replace('\\', '\\\\'), "tool(id='merge_tool', server='http://localhost:8080')")

请注意

  • http[^\s']+将匹配http,然后匹配除空格和单引号以外的任何一个或多个字符
  • b.replace('\\', '\\\\')对于替换文本字符串是动态的情况是必须的,并且其中的所有反斜杠必须加倍才能按预期工作。

相关问题