Python re.findall之后返回带有不需要的字符串的链接

时间:2017-10-11 20:00:24

标签: python beautifulsoup findall scraper

我有一个使用BeautifulSoup刮取的python脚本。这是我的代码:

re.findall('stream:\/\/.+', link)

旨在查找以下链接:

stream://987cds9c8ujru56236te2ys28u99u2s

但它也会返回如下字符串:

stream://987cds9c8ujru56236te2ys28u99u2s  [SD] Spanish - (9.15am)

即。有空格和额外的东西,我不想要。我该如何表达

re.findall

所以它只返回链接的第一部分?

(提前致谢)

1 个答案:

答案 0 :(得分:1)

您可以使用带有字边界字符'\b'的非贪婪匹配(将>>> re.findall(r'stream:\/\/.+?\b', link) ['stream://987cds9c8ujru56236te2ys28u99u2s'] 添加到模式中):

'\w+'

或者,如果您只想匹配单词字符,只需使用>>> re.findall(r'stream:\/\/\w+', link) ['stream://987cds9c8ujru56236te2ys28u99u2s']

即可
public function getDetailedProject()
{
    $data=Project::all()->where('pid', 35); 
    $eve=Event::all()->where('pro_id', 35);
    $don=Donation::all()->where('pro_id', 35);
    $opp=Opportunity::all()->where('pro_id', 35);
    return view('other.detailedProject')->with('data',$data);
}