[請益] 抓一個表格內的東西

看板RegExp作者 (newyellow)時間13年前 (2010/09/14 13:31), 編輯推噓2(204)
留言6則, 3人參與, 最新討論串1/1
最近剛接觸正規表示這個東西 最近想做一個跟學校課程有關的系統 目前在做的是把課程資料抓下來 但卻有一欄始終抓不到 網頁網址: http://tinyurl.com/2fhpyhy 教師那一欄怎麼抓都抓不到 (學校這個網頁 資料庫好像塞得不太乾淨...一堆空格,用原始碼檢視很醜) 要抓的地方大概長像這樣: <td> 王偉霖 <br>WANG WEI-LIN &nbsp; </td> 我是用 PHP 的 preg_match_all 去抓 /<td>(.*)<br>(.*)<\/td>/ 抓不到 甚至只抓 /<td>.*<\/td>/ 也抓不到老師這一欄 不知道是語法厝還是什麼原因 請教各位高手了 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.119.234.49 ※ 編輯: newyellow 來自: 140.119.234.49 (09/14 13:31)

09/14 17:53, , 1F
preg_match_all 的 . 不包含換行字元呀~
09/14 17:53, 1F

09/16 17:51, , 2F
要跨行的話,要加s修飾字使用單列模式
09/16 17:51, 2F

09/16 17:54, , 3F
像這樣 /<td>.*<\/td>/s ,這時候 . 就會包含換行字元
09/16 17:54, 3F

09/18 20:34, , 4F
謝謝! 不過試了之後 會變成把整頁抓下來
09/18 20:34, 4F

09/18 20:34, , 5F
用了 /<td>[^<]*<\/td>/s 就可以抓到了
09/18 20:34, 5F

09/22 00:08, , 6F
或是/<td>.*?<\/td>/s以免遇到像<td><b>test</b></td>
09/22 00:08, 6F
文章代碼(AID): #1CZmYpnf (RegExp)