我们说我有以下字符串:
MARKDOWN: [This link](http://example.net/)
我要转换为
MARKDOWN: [link=http://example.net]This link[/link]
这方面的最佳方法是什么,我该怎么做,注意一行中可以有多个链接。
提前致谢
答案 0 :(得分:2)
您可以通过re.sub
函数
>>> import re
>>> s = "MARKDOWN: [This link](http://example.net/)"
>>> m = re.sub(r'\[([^]]*)\]\((.*?)\/\)', r'[link=\2]\1[/link]', s)
>>> m
'MARKDOWN: [link=http://example.net]This link[/link]'
排除第二组捕获/)
。这样您就不会在链接值中获得最后/
。(即http://example.net
)。此外,您可以将最后一个\/
设为可选,因为某些链接最后可能包含/
,也可能不包含>>> m = re.sub(r'\[([^]]*)\]\((.*?)\/?\)', r'[link=\2]\1[/link]', s)
。因此正则表达式将是,
{{1}}
答案 1 :(得分:0)
re.sub(r"\[(.*?)\]\((.*?)\/?\)", r"[link=\2]\1[/link]",
"MARKDOWN: [This link](http://example.net/) and this [this](www.google.com)")
# output:
'MARKDOWN: [link=http://example.net]This link[/link] and
this [link=www.google.com]this[/link]'