1

我正在尝试使用正则表达式从 html 代码中获取 url。我对正则表达式了解不多,所以我有点困惑,因为它不起作用。情况是这样的:

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

我正在尝试使用这个正则表达式来获得“abengoa”:

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

另外,我正在使用python,所以代码是:

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

我的正则表达式有什么问题?谢谢

编辑:还有一个问题:

我该怎么做才能只获得第一场比赛?因为这个href是在文档中重复的,内容相同(但也不同,所以我必须全部搜索)。

4

5 回答 5

3

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

于 2012-07-06T09:32:43.413 回答
1

.*模式匹配任意数量的任意字符(贪心)。使用非贪婪版本.*?,它将尽可能匹配。它\w也不是/w

`.*?cotizacion-valor\/(\w+)\/.*?`
于 2012-07-06T09:32:51.247 回答
0

试试这个

rex = ".*cotizacion-valor\/(?P<param_name>.*?)\/.*"
于 2012-07-06T09:34:13.393 回答
0

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

于 2012-07-06T09:34:38.350 回答
0

使用这个:

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

并获取名为yourUrl 的组

于 2012-07-06T09:41:34.070 回答