stcyk 发表于 2010-4-21 19:20:50

请教如何获取文档里面含有该数据的整行,再输出结果?

本帖最后由 stcyk 于 2010-4-22 01:08 编辑

list0   123234435346245    324234p23poi423p4    1111   534533545
list2   12322342345346245    2342323poi423p4    11234   534533545
list3   123234435346245    324234p23poi423p4    1111   534533545
list0   12322342345346245    2342323poi423p4    11234   534533545
list5   123234435346245    324234p23poi423p4    1111   534533545
list6   12322342345346245    2342323poi423p4    11234   534533545
list7   123234435346245    324234p23poi423p4    1111   534533545
list0   12322342345346245    2342323poi423p4    11234   534533545

上面是1.txt的数据格式

如果要获取里面含有list0的行并输出为2.txt,代码应该如何写,要用什么函数,谢谢

C.L 发表于 2010-4-21 21:15:51


Dim $file1 = "1.txt",$file2="2.txt",$line=""
$i=1
While 1
        $line=FileReadLine ($file1,$i)
        If @error==-1 Then ExitLoop
        $i+=1
        $sTr = StringRegExp ($line,"list0")
        If $sTr Then
                FileWriteLine ($file2,$line)
        EndIf
WEnd

水木子 发表于 2010-4-21 21:42:54

本帖最后由 水木子 于 2010-4-21 22:08 编辑

嘿嘿!我来个正则匹配的!#include <Array.au3>
$sReg = StringRegExp(FileRead(@ScriptDir & '\1.txt'), 'list0.+', 3)
FileWrite(@ScriptDir & '\2.txt', _ArrayToString($sReg, @CRLF))

水木子 发表于 2010-4-21 22:08:09

嘿嘿!再来个正则替换的。FileWrite(@ScriptDir & '\2.txt', StringRegExpReplace(FileRead(@ScriptDir & '\1.txt'), 'list[^0].+', ''))

stcyk 发表于 2010-4-22 01:07:41

实在是佩服佩服,看来我要多多学习,谢谢以上几位,
对了,如果第一行是===============
最后一行是--------------------------
这样,然后要把第一行的数据和最后一行的数据复制进去对应在2.txt里面呢?是用什么函数呢?

stcyk 发表于 2010-4-22 01:10:27

发现了个问题,如果list0在中间,这样前面的字符都被删除了,例如
123234435346245list03poi423p4    1111   534533545
得到结果
list03poi423p4    1111   534533545是
是否能整行都输出

stcyk 发表于 2010-4-22 01:11:52

回复 2# C.L
谢谢你的代码,很简洁,很棒

netegg 发表于 2010-4-22 01:47:00

楼主,多问问afan和水木,这俩人最近都对正则很有研究

水木子 发表于 2010-4-22 09:09:35

本帖最后由 水木子 于 2010-4-22 09:14 编辑

发现了个问题,如果list0在中间,这样前面的字符都被删除了,例如
123234435346245list03poi423p4    1111 ...
stcyk 发表于 2010-4-22 01:10 http://www.autoitx.com/images/common/back.gif
表达式的问题,稍微修改下就可以了,怪我没考虑周到,不好意思啊!FileWrite(@ScriptDir & '\2.txt', StringRegExpReplace(FileRead(@ScriptDir & '\1.txt'), '.*list[^0].+', ''))
页: [1]
查看完整版本: 请教如何获取文档里面含有该数据的整行,再输出结果?