2011-02-24 71 views
0

需要一些幫助,這正則表達式魔術..提取一些字符串

我有這樣的: <a href="/en/node/1032/delete?destination=node%2F5%2Fblog">delete</a>

這:

(<a)*([^>]*>)[^<]*(</a>) 



$1 = <a 
$2 = href="/en/node/1032/delete?destination=node%2F5%2Fblog"> 
$3 = </a> 

我需要一些aditional的字符串:

  • 1032
  • href="/en/ en很有活力!

我怎樣才能得到這個字符串?

用於php

+0

你使用什麼語言? –

回答

0

([^ /])。這會給你 HREF =」 EN 節點

+0

對不起,但在哪裏把這個? – user633163

+0

不知道我是否理解你的問題,但你可以使用正則表達式來獲取組和獲取你的數據。 – bluesman

1

你的樣品可以用

(<a)\b.*?((href="/en/).*?(?</)(\d+)/.*?").*?>).*?(</a>)

捕捉...但也許替換 「的東西更廣泛的連接」,這取決於什麼你想捕捉。

但是,我想強調這一點,don't use regex to parse HTML,上述正則表達式將不會爲某些HTML-有效我的工作輸入,並由於limitations of regex它不能被改進爲每個可能的情況工作。使用HTML或XML解析器可以獲得更好,更正確的結果。

+0

這不工作..你認爲什麼是更好地使用一些PHP字符串函數? – user633163

+0

@ user633163我有一段時間沒有使用過PHP,但我想你想要'DOMDocument'類:http://www.phpro.org/examples/Parse-HTML-With-PHP-And-DOM.html和http://php.net/manual/en/class.domdocument.php使用'getElementsByTagName('a')'並獲取'href'屬性。將結果字符串拆分爲'/'字符,你應該擁有你想要的。 –