sd23 发表于 2012-12-1 18:14:51

[已解决]多行数据在首尾无分隔时的拆分问题求解

本帖最后由 sd23 于 2012-12-1 19:13 编辑

抓取到如下几行数据,需要将其拆分后单独赋值:

$data1 =

57270      57300       56700      59700       52950      56820
23945      23980       23705      25145       22300      23850
2138.4   2147.8      2121.0   2345.8      1919.4   2123.8
15535      15565       15310      16135       14310      15360
   3495      3495         3464      3672         3323      3476

作如下处理:

      $data2 = StringStripWS( $data1 , 1+4)
        $data3 = StringSplit($data2," ")
        _ArrayDisplay($data3, UBound($data3))

结果:
|26
|57270
|57300
|56700
|59700
|52950
|5682023945
|23980
|23705
|25145
|22300
|238502138.4
|2147.8
|2121.0
|2345.8
|1919.4
|2123.815535
|15565
|15310
|16135
|14310
|153603495
|3495
|3464
|3672
|3323
|3476

主要问题是行尾与行头无法拆分
想到在行头或行尾添加空格来解决,但找不到添加的方法。
;-------------------------------------------------------------
用摘抄 a版 的正则:

$data3 = StringRegExp($data1, '\H+', 3)
_ArrayDisplay($data3, UBound($data3))

结果:

|57270
|57300
|56700
|59700
|52950
|56820
|23945
|23980
|23705
|25145
|22300
|238502138.4
|2147.8
|2121.0
|2345.8
|1919.4
|2123.8
|15535
|15565
|15310
|16135
|14310
|15360
|3495
|3495
|3464
|3672
|3323
|3476

有一处因首尾无空格而未能拆分,请前辈们帮助解决,多谢了!

user3000 发表于 2012-12-1 18:55:14

本帖最后由 user3000 于 2012-12-1 19:00 编辑

试试:
$data3 = StringRegExp($data1, '[\d\.]+', 3)
或者:
$data3 = StringRegExp($data1, '\d+\.?\d?', 3)


还有这个:
$data3 = StringRegExp($data1, '\S', 3)

sd23 发表于 2012-12-1 19:12:27

谢谢3000!上面2个都很好! 第三种结果是单个字符,学习!

user3000 发表于 2012-12-1 19:18:38

回复 3# sd23

第3种少打了个字符, 应该用 \S+ , 这样也可以.
当然都是只相应处理你给出的示例数据.

sd23 发表于 2012-12-1 19:24:55

回复 4# user3000

哦,谢谢!受教了
页: [1]
查看完整版本: [已解决]多行数据在首尾无分隔时的拆分问题求解