读取关键字符串后面的字符 (已解决)
本帖最后由 28002673 于 2017-6-16 21:05 编辑比如我要读取ID.txt 文件中的关键字符串后面的字符
ID.TXT文件的内容是:
A1:696483584
A2:275848685
A4:242438484
AA4:488552422
A5:458488555
AA5:458488555
我要读取 A4:后面的“242438484”,但不要读取AA4:后面的内容,该怎么写啊! 本帖最后由 28002673 于 2017-5-31 00:04 编辑
#include <Constants.au3>
Opt("MustDeclareVars",1)
_test()
Func _test()
Local $foo,$line,$lines
$foo = Run(@ComSpec & ' /c type c:\ID.TXT | find /v "AA4" | find "A4" ', @SystemDir, @SW_HIDE, $STDOUT_CHILD)
$lines = ""
While 1
$line = StdoutRead($foo)
If @error Then ExitLoop
$lines &= $line
Wend
Local $var = StringMid($lines, 4, 13)
MsgBox(0,"test",$var)
EndFunc
看了下初学者教程,自己搞定了,但主要还是通过DOS命令实现的。。请大神教我用AU3函数来写吧。。 回复 2# 28002673
發文請注意版規 請修改標題 回复 3# kk_lee69
不好意思版主大人。。已经改过来了 回复 4# 28002673
我不會正則會正則的 一行應該可以解決... 试试:\bA4:(.+) ### 友情提示:本脚本由 Au3 正则测试工具 于 2017年05月31日10点24分33秒 自动生成,不保证其正确性,请自行修改测试 ###
#include <Array.AU3>
$string = _
'A1:696483584' & @CRLF & _
'A2:275848685' & @CRLF & _
'A4:242438484' & @CRLF & _
'AA4:488552422' & @CRLF & _
'A5:458488555' & @CRLF & _
'AA5:458488555'
Local $Array = StringRegExp($string, '(?mi)^A4:(\d+)' ,3)
For $i = 0 To UBound($Array) - 1
NEXT
;以下为测试结果:
If Not @Error Then MsgBox(0, '匹配数量: ' & UBound($array), '其中$array数组为: ' & $array)
_ArrayDisplay($Array, UBound($Array)) 本帖最后由 yamakawa 于 2017-5-31 12:07 编辑
(?im)^A4:(\V+)\bA4:(\V+) 一个粗放的正则:
.*?:(.+) (?im)^A4:(\V+)
已经搞定了。
谢谢大家。。。 回复 10# 28002673
注意版規
請修改標題
页:
[1]