找回密码
 加入
搜索
查看: 2327|回复: 2

[AU3基础] _arrayseach 不能搜索文本中的ip地址?

[复制链接]
发表于 2013-5-27 16:50:37 | 显示全部楼层 |阅读模式
本帖最后由 qingbird99 于 2013-6-1 23:51 编辑

有一个文本ip.txt,格式如下:
31250130|137.104.148.11
31250028|192.168.0.186
小弟初学,想先读取本机地址到文本中匹配然后把第一列的值取出,开始用用数组读出,显示正常,用_arrayseach ,总是返回-1,
#include<array.au3>
#Include <File.au3>
Dim $aArray1,$iIndex,$c1
_FileReadToArray(@WorkingDir & "\ip.txt",$aArray1)
_ArrayDisplay($aArray1);显示正常
$c1=@IPAddress1;本机地址:192.168.0.186
MsgBox(4096,"测试",$c1)
$iIndex=_ArraySearch($aArray1,$c1)
;返回-1
MsgBox(4096,"测试",$iIndex)
$c2=$aArray1[$iIndex]
MsgBox(4096,"测试",$c2)
总是无法查找,怎么样才能把192.168.0.186看成一个整体搜索,还是要转换数值,字符,怎么才能实现?请各位大侠看看
发表于 2013-5-27 18:28:39 | 显示全部楼层
数组搜索需匹配全部,而不能只匹配其中的某字符串,所以如此搜索不行,可以用正则,简单高效。
Local $str = FileRead(@ScriptDir & '\ip.txt')
Local $sFind = StringRegExpReplace($str, '(?si).*?(\V+?)\|\Q' & @IPAddress1 & '\E(?:\v+.*|$)', '\1')
If @extended > 0 Then
        MsgBox(64, ':)', $sFind)
Else
        MsgBox(48, ':(', '未匹配')
EndIf
 楼主| 发表于 2013-5-28 00:19:20 | 显示全部楼层
不应该啊,我如果让$c1=31250028,是可以搜索出的,得出$iIndex=2的,但是$c1="31250028",就是$iIndex=-1,搜索不出,究竟是什么原因啊?,还有这种情况,用什么方法来做最好,再请教
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-12-22 17:09 , Processed in 0.086951 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表