[問題] 使用正規表示法,抓取網頁資訊。

看板RegExp (正規表示式 Regular Expression)作者 (POIL)時間16年前 (2008/04/17 09:26), 編輯推噓2(2022)
留言24則, 4人參與, 最新討論串1/1
我要使用正規表示法抓取網頁資訊 以下是我要抓取的片段: ================================================================== <td height="8"> <div name="iclickAdBody_Start" id="iclickAdBody_Start"></div> <font color="#333333">星座:處女座<br /> 學歷:輔仁大學英文系<br /> 家中排行:排行老二<br /> 收集品:手飾<br /> 休閒嗜好:看電視<br /> 最喜歡的事:表演、和朋友聊天<br /> 最尊敬的人:Mother<br /> 最喜歡的季節:Summer<br /> 最喜歡的動物:Dog<br /> 最喜歡的花:The Rose<br /> 最喜歡的顏色:白色、黑色<br /> 最喜歡的水果:都愛<br /> 最喜歡的運動:羽球<br /> 最喜歡的音樂:Hip pop、R&B<br /> 最喜歡的刊物:Seventeen<br /> 最喜歡的食物:水果、義大利麵、奇異果汁<br /> 最討厭的食物:苦瓜</font> ================================================================== 我要抓取裡面的中文部分,我是打算先抓出來,後在用程式把<br />濾掉。 以下是我制定的正規表示法: "/<td\s*height=\"8\">\s*<div\s*name=\"iclickAdBody\s*Start\"\s*id =\"iclickAdBody_Start\"><\/div>\s*<font\s*color=\"#333333\">([^<]*)/" ↑ 我制定到這邊最後我只會判斷讓他等於 "<" 就擷取出來。 但是我是希望他可以判斷到最後面的</font> 我想請問下各位大大,要如何制定呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.141.35.112

04/17 22:25, , 1F
是要把 HTML 語法全部清除掉嗎?
04/17 22:25, 1F

04/17 22:25, , 2F
是的話可以這樣 s/<[^>]*>//g
04/17 22:25, 2F

04/17 23:04, , 3F
擷取中間的文字並標HTML TAG
04/17 23:04, 3F

04/18 00:05, , 4F
並非去掉HTML TAG
04/18 00:05, 4F

04/18 00:33, , 5F
這不是Jolin嗎?
04/18 00:33, 5F

04/18 00:55, , 6F
被發現ㄌ!哈...
04/18 00:55, 6F

04/18 05:10, , 7F
<td [^>]+>.<div [^>]+><\/div>.<font [^>]+>(.+)<\/font>
04/18 05:10, 7F

04/18 06:18, , 8F
改成下面這個... = =
04/18 06:18, 8F

04/18 06:19, , 9F
/_Start\"><\/div>[^<]+<font [^>]+>(.+)<\/font/
04/18 06:19, 9F

04/18 22:25, , 10F
可是我用你的方式,還是擷取不出來勒
04/18 22:25, 10F

04/18 22:25, , 11F
理論上 (.+) 應該會把所有的東西截取出來吧~
04/18 22:25, 11F

04/18 22:26, , 12F
可是他就是不抓,我就是不懂 = =a
04/18 22:26, 12F

04/18 22:26, , 13F
而且妳這樣寫(.+)應該會所有東西都抓進來吧?
04/18 22:26, 13F

04/18 22:27, , 14F
會判斷停止嗎?
04/18 22:27, 14F

04/18 23:01, , 15F
再改... XDDD
04/18 23:01, 15F

04/18 23:01, , 16F
_Start\"><\/div>[^<]+<font [^>]+>(([^<]+<[^>]+>\r\n)+)
04/18 23:01, 16F

04/18 23:02, , 17F
不過不知道 (([^<]+<[^>]+>\r\n)+) 是否能順利取出東西?
04/18 23:02, 17F

04/18 23:25, , 18F
感謝您的熱心解說
04/18 23:25, 18F

04/18 23:25, , 19F
因為狗急跳牆,後來我用str_replace函
04/18 23:25, 19F

04/18 23:26, , 20F
式把 <\font> 轉換成為 @ 就用 ([^@]*) 抓出來了
04/18 23:26, 20F

04/18 23:27, , 21F
感謝妳喔!
04/18 23:27, 21F

04/18 23:32, , 22F
不用客氣~ ^^ 我只是好玩
04/18 23:32, 22F

04/22 06:12, , 23F
既然這樣的話,其實不需用到 RegExp,用 substr + strpos 就
04/22 06:12, 23F

04/22 06:13, , 24F
好了吧?理論上也會比較快!
04/22 06:13, 24F
文章代碼(AID): #181gTJHj (RegExp)
文章代碼(AID): #181gTJHj (RegExp)