请教如何获取文档里面含有该数据的整行,再输出结果?
本帖最后由 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,代码应该如何写,要用什么函数,谢谢
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 22:08 编辑
嘿嘿!我来个正则匹配的!#include <Array.au3>
$sReg = StringRegExp(FileRead(@ScriptDir & '\1.txt'), 'list0.+', 3)
FileWrite(@ScriptDir & '\2.txt', _ArrayToString($sReg, @CRLF)) 嘿嘿!再来个正则替换的。FileWrite(@ScriptDir & '\2.txt', StringRegExpReplace(FileRead(@ScriptDir & '\1.txt'), 'list[^0].+', '')) 实在是佩服佩服,看来我要多多学习,谢谢以上几位,
对了,如果第一行是===============
最后一行是--------------------------
这样,然后要把第一行的数据和最后一行的数据复制进去对应在2.txt里面呢?是用什么函数呢? 发现了个问题,如果list0在中间,这样前面的字符都被删除了,例如
123234435346245list03poi423p4 1111 534533545
得到结果
list03poi423p4 1111 534533545是
是否能整行都输出 回复 2# C.L
谢谢你的代码,很简洁,很棒 楼主,多问问afan和水木,这俩人最近都对正则很有研究 本帖最后由 水木子 于 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]