2012-07-06 73 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