网店 发表于 2012-4-19 23:18:58

已解决多行数据如何处理问题

本帖最后由 网店 于 2012-4-21 00:50 编辑

现有以下数据:
hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";
hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";
hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";

结果是将数据入库
问题:
如何取到每行只需要数据的一部分 815 a 8.30 3812883 2012-04-19
并快速入sqlite库(不需要生成文本文件)

whitehead 发表于 2012-4-19 23:28:41

用正则表达式可以把这些数据取出

haijie1223 发表于 2012-4-19 23:31:32

这个需要正则大牛了,找A版吧,试了一下,技术不到家。

58fly 发表于 2012-4-19 23:50:03

这种入库,我感觉没有太快的办法,不过我有个__sql.au3,操作起来还是很方便

网店 发表于 2012-4-20 00:00:26

回复 4# 58fly


    可否一观 _sql.au3

user3000 发表于 2012-4-20 00:13:17

回复 1# 网店
只希望有抛砖引玉的功效#include <array.au3>
Local $str = 'hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";' & @CRLF & _
'hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";' & @CRLF & _
'hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";'
$result = StringRegExp($str, '(?m)hq_st(\d+)="(,\d+\.\d{2})[^"]+(\d{7,8})(?:,\d{7,9}),(\d{4}-\d{2}-\d{2})";', 3)
If Not @error Then _ArrayDisplay($result)

298311657 发表于 2012-4-20 00:17:23

StringRegExp('hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";',".+(\d{3}).{2}(\w),(.{4}).+(\d{7}).\d+,(\d{4}-\d{2}-\d{2})",1)

网店 发表于 2012-4-20 08:11:58

回复 6# user3000


    如何能快速入库!!!!

网店 发表于 2012-4-20 08:19:02

能否数列放入二维数组里?????????然后一次性处理一列!!!

xms77 发表于 2012-4-20 11:24:23

本帖最后由 xms77 于 2012-4-20 11:28 编辑

回复 2# whitehead
这个正则有点难度啊!功力不够啊

apoorman1986 发表于 2012-4-20 21:51:13

回复 1# 网店


   试一下我的。

#include <array.au3>
Local $str = 'hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";' & @CRLF & _
'hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";' & @CRLF & _
'hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";'
$result = StringRegExp($str, 't(\d{3})="(\w),(\d\.\d+).+\.\d{2},(\d+).+(\d{4}-\d\d-\d\d)";', 3)
If Not @error Then _ArrayDisplay($result)

whitehead 发表于 2012-4-20 23:11:59

回复whitehead
这个正则有点难度啊!功力不够啊
xms77 发表于 2012-4-20 11:24 http://www.autoitx.com/images/common/back.gif
这个正则问题好象没那么难,我是不会入库

lixiaolong 发表于 2012-4-21 14:35:27

练习练习~
#include <Array.au3>
Local $Str = _
                'hq_st815="a,8.30,8.31,8.23,8.32,8.21,8.23,8.24,3812883,31463857,2012-04-19";' & @CRLF & _
                'hq_st293="b,7.83,7.83,8.35,8.50,7.80,8.33,8.35,19280200,156963084,2012-04-19";' & @CRLF & _
                'hq_st093="c,5.17,5.06,5.16,5.21,5.14,5.15,5.16,2774321,14355196,2012-04-19";' & @CRLF

Local $Test = StringRegExp($str, '[^\d]+(\d+)[^\w]+(\w+),([^,]+).*?,(\d{3,}).+,([^"]+)', 3)
If Not @Error Then _ArrayDisplay($Test, UBound($Test))
页: [1]
查看完整版本: 已解决多行数据如何处理问题