找回密码
 加入
搜索
查看: 3160|回复: 6

[AU3基础] 请教怎么样匹配记事本中的文字?

  [复制链接]
发表于 2012-7-15 20:56:40 | 显示全部楼层 |阅读模式
本帖最后由 lansings 于 2012-7-15 20:58 编辑

用来做一个自动聊天的软件,在inputbox 里输入你要问的问题,然后怎么匹配其中的关键字,再从记事本里找到相应的回答?(最少匹配2个关键字)
比如说我输入:你好;
然后把这句话和下面的[Questions] 里的文字进行匹配,如果匹配成功则在[Answer]里找出相应的序号进行回答。
望大家帮帮忙,我是初学者。

[Questions]
1.你好?
2.你在哪里?
3.你叫什么名字?
4.你最近好吗?
5.可以交个朋友吗?


[Answer]
1.你好。
2.我在家里上网。
3.我叫机器人小A。
4.还可以,你呢?
5.当然可以啦,呵呵。
发表于 2012-7-15 22:02:33 | 显示全部楼层
Local $Str1 = _
                '[Questions]' & @CRLF & _
                '1.你好?' & @CRLF & _
                '2.你在哪里?' & @CRLF & _
                '3.你叫什么名字?' & @CRLF & _
                '4.你最近好吗?' & @CRLF & _
                '5.可以交个朋友吗?'

Local $Str2 = _
                '[Answer]' & @CRLF & _
                '1.你好。' & @CRLF & _
                '2.我在家里上网。' & @CRLF & _
                '3.我叫机器人小A。' & @CRLF & _
                '4.还可以,你呢?' & @CRLF & _
                '5.当然可以啦,呵呵。'

$sKey = InputBox('请输入以下问题中的关键字', $Str1, '哪里', ' M', 300, 180)

Local $aSR = StringRegExp($Str1, '(\d+).*?' & $sKey, 1)
If @error Then Exit MsgBox(48, '注意', '无匹配')
Local $aSR1 = StringRegExp($Str2, '(?<=\n)\h*' & $aSR[0] & '\h*\.?(\V+)', 1)
If @error Then Exit MsgBox(48, '注意', 'Error_1')
MsgBox(0, '', $aSR1[0])

评分

参与人数 2金钱 +42 收起 理由
lpxx + 20 确实很强,慢慢学习。
benkel + 22 A版犀牛牛XX的正则,膜拜

查看全部评分

 楼主| 发表于 2012-7-15 23:38:09 | 显示全部楼层
回复 2# afan


    谢谢你。
发表于 2012-7-15 23:56:03 | 显示全部楼层
回复 2# afan

专门进来膜拜A版的正则的!留个脚印,备用!
发表于 2012-7-16 09:03:29 | 显示全部楼层
慢慢学习正则,人老记性差了。
发表于 2012-7-16 09:07:45 | 显示全部楼层
正在学习正则,发现好容易忘记啊
发表于 2019-10-30 16:26:59 | 显示全部楼层
这个有用,学习了。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

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

GMT+8, 2024-4-20 03:50 , Processed in 0.086173 second(s), 27 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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