Python 查找并替换字符之间的字符串
我需要在文件中找到一个字符串并重新格式化 要查找格式的字符串:Python 查找并替换字符之间的字符串,python,python-3.x,Python,Python 3.x,我需要在文件中找到一个字符串并重新格式化 要查找格式的字符串: [title](link) 例如: [template application](https://stackoverflow.com/sample/base-app) <a href="https://stackoverflow.com/sample/base-app">template application</a> 我想将其更改为HTML链接: <a href="link">title
[title](link)
例如:
[template application](https://stackoverflow.com/sample/base-app)
<a href="https://stackoverflow.com/sample/base-app">template application</a>
我想将其更改为HTML链接:
<a href="link">title</a>
例如:
[template application](https://stackoverflow.com/sample/base-app)
<a href="https://stackoverflow.com/sample/base-app">template application</a>
最好的方法是什么?
我在考虑正则表达式,但我不知道如何实现它。有一种简单的方法吗?您可以利用函数接收另一个函数作为替换参数的事实:
import re
line = '[template application](https://stackoverflow.com/sample/base-app)'
def repl(match):
return '<a href="{}">{}</a>'.format(match.group(2), match.group(1))
result = re.sub('\[(.+?)\]\((https?.+?)\)', repl, line)
print(result)
代替
repl
函数。如Daniel所说,您可以使用re
达到所需的结果,但如果您不想使用正则表达式,您可以使用str.split
:
line = '[template application](https://stackoverflow.com/sample/base-app)'
link = line.split('(')[1][:-1]
title = line.split(']')[0][1:]
result = '<a href="{}">{}</a>'.format(link, title)
line='[模板应用程序](https://stackoverflow.com/sample/base-app)'
link=line.split(“(”)[1][:-1]
title=line.split(']')[0][1:]
结果=“”。格式(链接、标题)
如果您使用的是Python 3.6或更高版本:
result = f'<a href="{link}">{title}</a>'
result=f''
使用替换函数而不是字符串的任何特殊原因:re.sub('\[(.+?)\]\((https?+?)\'),r'',line)
?