我是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."
抱歉,代码示例笨拙。帮助将不胜感激!
答案 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{}".format(link_match.group(0)), text)
'Lorem ipsum text lorem ipsum text \\textbf{http://link.xyz} some random text here.'
请注意,双反斜杠是格式(转义)详细信息,不会在输出中显示。