找回密码
 加入
搜索
查看: 3016|回复: 7

[AU3基础] 有什么法子可以高效在数组中实现模糊查找[已解决]

[复制链接]
发表于 2021-5-25 22:19:32 | 显示全部楼层 |阅读模式
本帖最后由 heroxianf 于 2021-5-25 22:57 编辑
Local $arr = [['name', 'tom'], ['age', 10], ['like', 'toto']]
比如我搜索关键字 'to' 就可以把 tom 和 toto 查询出来. 我原本打算循环正则匹配的, 数组量大了的话有点耗时.



发表于 2021-5-25 22:29:58 | 显示全部楼层
#include <Array.au3>

Local $aArray = [['name', 'tom'], ['age', 10], ['like', 'toto']]
Local $aiResult = _ArrayFindAll($aArray, 'to', 0, 0, 0, 1, 1)
_ArrayDisplay($aiResult)
 楼主| 发表于 2021-5-25 22:32:27 | 显示全部楼层

我还是太菜了, 这个函数愣是没看懂. QQQ 大A
 楼主| 发表于 2021-5-25 22:42:44 | 显示全部楼层

A大, _ArraySearch() 函数里也有一个执行部分搜索, 那个如何使用呢?
发表于 2021-5-25 22:48:33 | 显示全部楼层
heroxianf 发表于 2021-5-25 22:42
A大, _ArraySearch() 函数里也有一个执行部分搜索, 那个如何使用呢?

_ArraySearch() 只返回一个搜索结果。如果你要返回所有结果应该是需要循环才行的。
发表于 2021-5-25 22:52:23 | 显示全部楼层
#include <Array.au3>

Local $aArray = [['name', 'tom'], ['age', 10], ['like', 'toto']]
Local $iIndex, $iStart = 0
Do
        $iIndex = _ArraySearch($aArray, 'to', $iStart, 0, 0, 1, 1, 1)
        If @error Then ExitLoop
        MsgBox(0, '', $iIndex)
        $iStart = $iIndex + 1
Until 0
 楼主| 发表于 2021-5-25 22:56:55 | 显示全部楼层

这下明白了, 还可以这样用.
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-5-4 23:17 , Processed in 0.071804 second(s), 19 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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