2012-07-06 74 views
1

我想从正则表达式的html代码中获取一个url。我不太了解正则表达式,所以我有点困惑,因为它不起作用。这种情况:关于正则表达式case

<a href="cotizacion-valor/abengoa/" style="text-decoration:none;color:#006699;">ABG.MC</a> 

而我试图让 “阿文戈亚” 使用此正则表达式:

".*cotizacion-valor\/(/w+)\/.*" 

另外,我使用python,因此代码:

regex_companies = ".*cotizacion-valor\/(/w+)\/.*" 
match_companies = re.findall(regex_companies, content_web) 

我的正则表达式有什么不好?由于

编辑:还有一个问题:

我能做些什么来只得到第一场比赛?因为这个href沿着具有相同内容的文档重复(但也与不同的,所以我必须搜索全部)。

回答

3

您使用/w不正确。您必须使用\w而不是/w

1

.*模式匹配任意数量的任何字符(贪婪)。使用非贪婪版本.*?,它可以代替尽可能匹配。此外,它的\w/w

`.*?cotizacion-valor\/(\w+)\/.*?` 
0

试试这个

rex = ".*cotizacion-valor\/(?P<param_name>.*?)\/.*" 
0

使用这个表达式(?<=.*cotizacion-valor/)(\w+)(?=\/.*)

0

使用这一个:

<a\s+href=\"(?<yourUrl>[^\"])\" 

并获得组名为yourUrl