Re: [問題] 我想要比對不在 HTML Tag 之中的文字
※ 引述《Daira (Daira)》之銘言:
: 補充一下我的問題
: ※ 引述《Daira (Daira)》之銘言:
: : 我想在一篇 HTML 的原始碼中搜尋並取代資料
: : 比方說我可能要找 'HTML' 這個 pattern,然後取代成 '超文字標記語言' 之類的
: : 但是我希望找到的是在畫面上會顯示的 HTML 四個字元
: : 而不要它比對到 <html> 或是 </html> 這些 tag 中的 html
: : 但是我一直想不出 Regular Expression 要怎麼寫
: : 所以上來請教大家 >"<
: 我目前的想法是,只要 pattern 出現在 < 和 > 符號之中,就可以直接忽略掉
: 但是這個想法不知道要怎麼實作
$pat1='(?<=[^<]/)html';
$pat2='(?<=[^</])html';
$pat3='html(?=[^>])';
$pat4='^html';
/$pat1|$pat2|$pat3|$pat4/i
: : 另外,還有一個問題是,如果我想找的是 'm' 這個 pattern
: : 可是在 Big5 編碼下,他會比對到 '然' 這個中文字(因為下位元碼是 'M')
: : 我目前的想法是寫成
: : /((?:[\x01-\x7F]|^)(?:[\x80-\xFF]{2})*|^)m/
: : 這樣去比對
: : 大致上還堪用,可是有一個問題是
: : 如果出現連續的兩個 'm',第二個 'm' 會沒有辦法被比對到
: : 也是想請教大家有沒有解決辦法...
: : 感謝大家...
: 我之前有找到一個解決辦法是用 use encoding 'big5';
: 測試過之後還是會有一些奇怪的問題(比方說取代時還是會切到一個中文字)
: 而且重點是,執行效率有明顯的降低...
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.63.246.28
推
06/11 02:38, , 1F
06/11 02:38, 1F
討論串 (同標題文章)
Perl 近期熱門文章
PTT數位生活區 即時熱門文章