2024-05-08 21:52:35 发布
网友
我有这个字符串:
http://pastebin.com/XXXXXXXhttp://pastebin.com/XXXXXX\r
我需要提取一行中以结尾的所有链接。\r它可以包含一个链接甚至五个链接。我得到了这样的东西:
(http[s]*:.*)[\\r|h]
但它返回整行作为一个匹配, 有什么想法吗?你知道吗
试试这个
va = 'http://pastebin.com/XXXXXXXhttp://pastebin.com/XXXXXX\r' import re vac = re.findall(r"(?:https?:\/+)([^\r|h]+)",va) print vac
您可以在findall中使用这个基于lookahead的正则表达式:
findall
>>> 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或行结束的正向前瞻。你知道吗
(?=http://|[\r\n]|$)
http://
\r
\n
RegEx Demo
试试看:(https?:\/\/[^\\r|h]+)
(https?:\/\/[^\\r|h]+)
试试这个
您可以在
findall
中使用这个基于lookahead的正则表达式:(?=http://|[\r\n]|$)
是断言下一个位置有http://
或\r
或\n
或行结束的正向前瞻。你知道吗RegEx Demo
试试看:
(https?:\/\/[^\\r|h]+)
相关问题 更多 >
编程相关推荐