Re: [问题] 长度固定的写法..(perl/php皆可)

楼主: squalll (追求梦想~)   2011-10-02 07:44:53
没想到还会回来回这一篇....
最近才发现这样写有些资料有问题
因为资料字段中不一定会有资料,
最后一个字段如果是空白的话这样输出就会错误
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
: 谢谢大家 :)
作者: bibo9901 (function(){})()   0000-00-00 00:00:00
长度固定的话用substr不就好了吗?
作者: godspeedlee (妳,我可以)   0000-00-00 00:00:00
上一篇第一行有空白分隔,这次又没有?:P

Links booklink

Contact Us: admin [ a t ] ucptt.com