這個問題顯示了我對正則表達式的無知。我從來沒有足夠的理解它。返回一部分正則表達式匹配
如果我想匹配,例如,HTML中標籤的URL部分,我需要做什麼?
我的正則表達式來獲取整個標籤:
<A[^>]*?HREF\s*=\s*[""']?([^'"" >]+?)[ '""]?>
我不知道我需要做的就是URL出這一點,我不知道在哪裏看的正則表達式文檔弄清楚這一點。
這個問題顯示了我對正則表達式的無知。我從來沒有足夠的理解它。返回一部分正則表達式匹配
如果我想匹配,例如,HTML中標籤的URL部分,我需要做什麼?
我的正則表達式來獲取整個標籤:
<A[^>]*?HREF\s*=\s*[""']?([^'"" >]+?)[ '""]?>
我不知道我需要做的就是URL出這一點,我不知道在哪裏看的正則表達式文檔弄清楚這一點。
如果使用Perl進行編程,您可以在if()語句中使用$ 1操作符。例如。
if($HREF =~ /<A[^>]*?HREF\s*=\s*[""']?([^'"" >]+?)[ '""]?>/) {
print $1;
}
的究竟是如何部分取決於你使用的正則表達式庫,但方法是使用一個分組表達式。在你的例子中,你實際上已經有了一個,因爲分組表達式是加上括號的。 href屬性值是您的第一個組(您的第零組是整個表達式)。
您可以使用圓括號將正則表達式匹配的部分分組。在這種情況下,您可以在URL部分周圍使用圓括號,然後使用數字來引用該組。請參閱here以瞭解您可以如何做到這一點。
我切換了一點東西 - 嘗試這樣的事:
<a[^>]*href="([^"]*).*>
謝謝,這給了我足夠的洞察力,以解決我的問題。分組是我需要的:-) – 2009-02-18 02:25:29
很高興我能幫忙^^ – Suroot 2009-02-18 02:26:22