Re: [問題] 長度固定的寫法..(perl/php皆可)

看板RegExp (正規表示式 Regular Expression)作者 (追求夢想~)時間13年前 (2011/10/02 07:44), 編輯推噓1(101)
留言2則, 2人參與, 最新討論串2/6 (看更多)
沒想到還會回來回這一篇.... 最近才發現這樣寫有些資料有問題 因為資料欄位中不一定會有資料, 最後一個欄位如果是空白的話這樣輸出就會錯誤 12345a345cd2187ankjdkj219zxnmzxn2109890 123 j12345mc1235987ccccc aaaaxxxxxxx 12344123222 123ascv 這樣到第三筆輸出的時候會變得很奇怪 預期應該會變成 12345,a345cd,2187ankjdkj219,zxnmzxn,2109890 123 ,j12345,mc1235987ccccc, aaaa,xxxxxxx 12344,123222,,123ascv, 但是實際上第三筆資料會變成 12344123222,123ascv之類的.. 我的REGEXP目前是這樣寫 foreach $thing (@list){ $thing =~ s/(.{5})(.{6})(.{7})(.{8})(.{9})/$1,$2,$3,$4,$5/; .... } 主要應該是因為s/match一串非空白字元,並以找到的字串為結尾 所以當我最後一欄資料為空白的時候就會發生錯誤了 不知道有沒有人遇過類似的問題? 該如何解決呢 我的資料是連續的..該怎麼寫才可以取出度定長度的值(包含空白) 謝謝m(_ _)m ※ 引述《squalll (放逐?)》之銘言: : 有一堆連續的資料 : 12345 a345cd 2187ankjdkj219 zxnmzxn 2109890 : 123 j12345 mc1235987ccccc aaaa xxxxxxx : 中間有空白分隔,不過因為長度都固定,想問取固定長度的regular怎麼寫呢 : 希望能轉換成這樣,第一欄就固定取長度五個,第二欄六個,第三欄14個..之類的! : 輸出結果: : 12345,a345cd,2187ankjdkj219,zxnmzxn,2109890 : 123 ,j12345,mc1235987ccccc, aaaa,xxxxxxx : 謝謝大家 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.34.47.134 ※ 編輯: squalll 來自: 114.34.47.134 (10/02 08:00) ※ 編輯: squalll 來自: 114.34.47.134 (10/02 08:08)

10/02 11:06, , 1F
長度固定的話用substr不就好了嗎?
10/02 11:06, 1F

10/02 14:45, , 2F
上一篇第一行有空白分隔,這次又沒有?:P
10/02 14:45, 2F
文章代碼(AID): #1EXwNuh_ (RegExp)
討論串 (同標題文章)
文章代碼(AID): #1EXwNuh_ (RegExp)