28002673 发表于 2017-5-30 23:00:15

读取关键字符串后面的字符 (已解决)

本帖最后由 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-30 23:31:02

本帖最后由 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函数来写吧。。

kk_lee69 发表于 2017-5-31 00:28:15

回复 2# 28002673

發文請注意版規   請修改標題

28002673 发表于 2017-5-31 00:53:09

回复 3# kk_lee69


   不好意思版主大人。。已经改过来了

kk_lee69 发表于 2017-5-31 01:08:26

回复 4# 28002673

我不會正則會正則的 一行應該可以解決...

tubaba 发表于 2017-5-31 08:48:17

试试:\bA4:(.+)

xzf680 发表于 2017-5-31 10:27:40

### 友情提示:本脚本由 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:02:56

本帖最后由 yamakawa 于 2017-5-31 12:07 编辑

(?im)^A4:(\V+)\bA4:(\V+)

cihron 发表于 2017-5-31 22:46:08

一个粗放的正则:
.*?:(.+)

28002673 发表于 2017-6-1 14:53:48

(?im)^A4:(\V+)
已经搞定了。
谢谢大家。。。

kk_lee69 发表于 2017-6-1 16:49:29

回复 10# 28002673


   注意版規

請修改標題
页: [1]
查看完整版本: 读取关键字符串后面的字符 (已解决)