2024-10-01 13:24:18 发布
网友
我想从字符串中提取一个完整的URL。在
我的代码是:
import re data = "ahahahttp://www.google.com/a.jpg>hhdhd" print re.match(r'(ftp|http)://.*\.(jpg|png)$', data)
输出:
预期产量
http://www.google.com/a.jpg
我在StackOverflow上找到了这么多问题,但没有一个对我有用。 我看过很多帖子,这不是重复的。请帮帮我!谢谢。在
你很亲密!在
试试这个:
r'(ftp|http)://.*\.(jpg|png)'
您可以将此here可视化。在
我也会让这个不贪婪的人变成这样:
您可以将这种贪婪与非贪婪行为here和{a3}可视化。在
默认情况下,.*将匹配尽可能多的文本,但您希望匹配尽可能少的文本。在
.*
您的$将匹配项锚定在行尾,但在您的示例中,URL的结尾不是行尾。在
$
另一个问题是您使用的是re.match(),而不是{}。使用re.match()从字符串的开头开始匹配,而re.search()搜索字符串中的任何位置。有关详细信息,请参见here。在
re.match()
re.search()
使用Find(http://,ftp://)查找url的开头。使用Find(jpg,png)查找url的结尾。现在获取子字符串
data = "ahahahttp://www.google.com/a.jpg>hhdhd" start = data.find('http://') kk = data[start:] end = kk.find('.jpg') print kk[0:end+4]
你应该使用搜索而不是匹配。在
import re data = "ahahahttp://www.google.com/a.jpg>hhdhd" url=re.search('(ftp|http)://.*\.(jpg|png)', data) if url: print url.group(0)
你很亲密!在
试试这个:
您可以将此here可视化。在
我也会让这个不贪婪的人变成这样:
^{pr2}$您可以将这种贪婪与非贪婪行为here和{a3}可视化。在
默认情况下,
.*
将匹配尽可能多的文本,但您希望匹配尽可能少的文本。在您的
$
将匹配项锚定在行尾,但在您的示例中,URL的结尾不是行尾。在另一个问题是您使用的是}。使用
re.match()
,而不是{re.match()
从字符串的开头开始匹配,而re.search()
搜索字符串中的任何位置。有关详细信息,请参见here。在使用Find(http://,ftp://)查找url的开头。使用Find(jpg,png)查找url的结尾。现在获取子字符串
你应该使用搜索而不是匹配。在
相关问题 更多 >
编程相关推荐