查找http链接并放在Python中的标签之间?

时间:2018-08-21 05:50:55

标签: regex python-3.x

我是Python的新手(我正在使用Python 3.7)。我正在尝试创建一个脚本,以从网页上抓取一些文本,从标签中清除文本,然后制成可读文件。我想查找所有链接(以“ http”开头),并将它们放在一对标签TeX \ textbf {和}之间,以便这些链接在最终文档中以粗体显示。 我找到了一段代码来查找从特定字符开始的单词。

>>> import re
>>> text = "Lorem ipsum text lorem ipsum text  http:\\link.xyz some random text here."
>>> re.findall(r'\[h]\w+', text)

我想得到的是:

>>> text = "Lorem ipsum text lorem ipsum text  \textbf{http:\\link.xyz} some random text here."

抱歉,代码示例笨拙。帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

使用this answer方法将re.sub()的正则表达式拼接在一起(并修复链接以使用正确的斜杠),我们可以做到这一点:

>>> import re
>>> link_finder = re.compile(r"https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}\b(?:[-a-zA-Z0-9@:%_\+.~#?&//=]*)")
>>> text = "Lorem ipsum text lorem ipsum text  http://link.xyz some random text here."
>>> link_finder.sub(lambda link_match: "\\textbf{enter image description here}".format(link_match.group(0)), text)
'Lorem ipsum text lorem ipsum text  \\textbf{http://link.xyz} some random text here.'

请注意,双反斜杠是格式(转义)详细信息,不会在输出中显示。