我想刮從網站的iframe,但似乎無法湊整IFRAME(不僅僅是屬性)(爲崗位的目的,我會做一個基本的iframe)獲取整個iframe與正則表達式
<iframe src="http://google.com"></iframe>
每個iframe的內容是容易發生變化,因此需要正則表達式的iframe標記一些我如何,有以下買試過無法得到它的工作:
<iframe[^>]*>(.*?)</iframe[^>]*>"
我想刮從網站的iframe,但似乎無法湊整IFRAME(不僅僅是屬性)(爲崗位的目的,我會做一個基本的iframe)獲取整個iframe與正則表達式
<iframe src="http://google.com"></iframe>
每個iframe的內容是容易發生變化,因此需要正則表達式的iframe標記一些我如何,有以下買試過無法得到它的工作:
<iframe[^>]*>(.*?)</iframe[^>]*>"
(<iframe[^>]*>(.*?)</iframe[^>]*>)
你的整個iframe是現在在捕獲組1中。一些實現將允許您使用捕獲組0來獲得整個匹配。其他實現方法只是爲了獲得整個匹配的文本。
這可能是因爲您的iframe跨越多行。在這種情況下,您應該知道.
與換行符不匹配,因此您可以用(?:.|\n)
或[^<]
替換它,或者使用點全部/單行標誌,以便點匹配所有字符。您也可以使用這個正則表達式代替:<iframe[^>]*?(?:\/>|>[^<]*?<\/iframe>)
也匹配<iframe />
您的正則表達式中的一個小錯誤:未命名組中的第二個替代方法需要以'>'開始,因此您可以抓取開始標記的最後一個字符。此外,所有RegEx解析HTML的東西很容易在嵌套標籤的情況下爆炸(例如輸入「
我更新了我的答案。 –