正则表达式在上查找链接

2024-05-08 21:52:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个字符串:

http://pastebin.com/XXXXXXXhttp://pastebin.com/XXXXXX\r

我需要提取一行中以结尾的所有链接。\r它可以包含一个链接甚至五个链接。我得到了这样的东西:

(http[s]*:.*)[\\r|h]

但它返回整行作为一个匹配, 有什么想法吗?你知道吗


Tags: 字符串comhttp链接结尾pastebinxxxxxxxxxxxxxhttp
3条回答

试试这个

va = 'http://pastebin.com/XXXXXXXhttp://pastebin.com/XXXXXX\r'
import re
vac = re.findall(r"(?:https?:\/+)([^\r|h]+)",va)
print vac   

您可以在findall中使用这个基于lookahead的正则表达式:

>>> s='http://pastebin.com/XXXXXXXhttp://pastebin.com/XXXXXX\r'
>>> re.findall(r'https?://.+?(?=https?://|[\r\n]|$)', s)
['http://pastebin.com/XXXXXXX', 'http://pastebin.com/XXXXXX']

(?=http://|[\r\n]|$)是断言下一个位置有http://\r\n或行结束的正向前瞻。你知道吗

RegEx Demo

试试看:(https?:\/\/[^\\r|h]+)

相关问题 更多 >