Re: [問題] 請問一個表示法
看板RegExp (正規表示式 Regular Expression)作者PurpleCrow (阿樂)時間12年前 (2013/01/15 16:42)推噓0(0推 0噓 0→)留言0則, 0人參與討論串2/3 (看更多)
※ 引述《twoseven (Tse)》之銘言:
: 環境 .NET C#
: 我有一串html要抓取 規則是這樣
: <tbody>
: <title>我要的資料A</title>
: <by>
: <span>我要的資料B</span> <---此段是我的問題
: </by>
: <by>
: xxxxxxxxxxxxxx
: </by>
: </tbody>
: --------------------------------------------------
: 我要抓的資料固定就是 <tbody>開始 </tbody>結束
: 我寫的方法很簡單本來用
: <tbody>.*?<title>(?<A>.*?)</title>.*?<by>.*?<span>(?<B>.*?)</span>.*?</tbody>
: 結果後來資料B出現一些狀況 有可能會沒有<span>出現
: 而這筆資料我也不需要 即是我只要 tbody by裡面有 span標籤的A跟B就好
: 可是當出現一筆錯誤資料時候 (譬如第一筆沒有span第二筆有)
: 結果他就會取第一筆的資料A 跟第二筆的資料B
: 也就是開頭變成第一筆的tbody 結束是第二筆的/tbody
: 請問我要如何排除第一筆錯誤的格式 而改從第二筆的tbody重新匹配?
: 謝謝
不知道是不是你說的意思
連續資料如下:
<tbody>
<title>我要的資料A</title>
<by>
<span>我要的資料B</span>
</by>
<by>
xxxxxxxxxxxxxx
</by>
</tbody>
<tbody>
<title>我要的資料C</title>
<by>
xxxxxxxxxxxxxx
</by>
</tbody>
<tbody>
<title>我要的資料D</title>
<by>
<span>我要的資料E</span>
</by>
<by>
xxxxxxxxxxxxxx
</by>
</tbody>
<tbody>\s+<title>([^<]+).+?(?:<span>([^<]+)|</tbody>)
得
我要的資料A
我要的資料B
我要的資料C
我要的資料D
我要的資料E
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.120.179.172
討論串 (同標題文章)
RegExp 近期熱門文章
PTT數位生活區 即時熱門文章