作者squalll (追求梦想~)
看板RegExp
标题Re: [问题] 长度固定的写法..(perl/php皆可)
时间Sun Oct 2 07:44:53 2011
没想到还会回来回这一篇....
最近才发现这样写有些资料有问题
因为资料栏位中不一定会有资料,
最後一个栏位如果是空白的话这样输出就会错误
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)
1F:→ bibo9901:长度固定的话用substr不就好了吗? 10/02 11:06
2F:推 godspeedlee:上一篇第一行有空白分隔,这次又没有?:P 10/02 14:45