[問題] 字串比對處理

看板Perl作者 (華麗的冒險)時間17年前 (2008/06/08 03:33), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串1/1
目前正著手轉碼的工作,目前有類似以下兩種字串 $str1 = c&#xA5;&#xBF;&#xAA;&#xF9;&#xA4;f&#xB9;D&#xB8;&#xB8;&#xF4;01 ; $str2 = a&#xA5;&#xBF;&#xAA;&#xF9;_&#xB8;&#xF4;&#xBC;&#xD0;&#xAC;W08 ; 黃字部分是主要要進行轉碼的字串,因為檔案裡面兩種格式都有,所以必須先進行 判別的工作,小弟如此寫: if ($line =~ m/(.*?)(&.*;)(.*)/g || $line =~ m/(.*?)(&.*;[\w])(.*)/g) 後再將$2的字串提出出來轉碼。 結果無法成功所以才來此求救...主要||前的寫法對於str2最後的W他會漏掉,因此才加了 ||後的寫法,但還是行不通,執行結果跟沒有寫||後的結果相同; 另外只有寫if ($line =~ m/(.*?)(&.*;[\w])(.*)/g) 這樣的話,當然它str1只會處理綠 色底處。 小弟想請教是否有建全的方法來處理這兩類字串呢? 麻煩各位了 <(_ _)> -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.116.41.73 ※ 編輯: bustta 來自: 59.116.41.73 (06/08 03:34) ※ 編輯: bustta 來自: 59.116.41.73 (06/08 03:42)

06/08 11:02, , 1F
s/&#x([a-fA-F0-9]{2});/pack("C", hex($1))/eg; print;
06/08 11:02, 1F

06/08 18:30, , 2F
=Q= 簡潔實用,真威...受教了,謝謝^^~
06/08 18:30, 2F
文章代碼(AID): #18IkABnJ (Perl)
文章代碼(AID): #18IkABnJ (Perl)