lansings 发表于 2012-7-15 20:56:40

请教怎么样匹配记事本中的文字?

本帖最后由 lansings 于 2012-7-15 20:58 编辑

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


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



1.你好。
2.我在家里上网。
3.我叫机器人小A。
4.还可以,你呢?
5.当然可以啦,呵呵。

afan 发表于 2012-7-15 22:02:33

Local $Str1 = _
                '' & @CRLF & _
                '1.你好?' & @CRLF & _
                '2.你在哪里?' & @CRLF & _
                '3.你叫什么名字?' & @CRLF & _
                '4.你最近好吗?' & @CRLF & _
                '5.可以交个朋友吗?'

Local $Str2 = _
                '' & @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 & '\h*\.?(\V+)', 1)
If @error Then Exit MsgBox(48, '注意', 'Error_1')
MsgBox(0, '', $aSR1)

lansings 发表于 2012-7-15 23:38:09

回复 2# afan


    谢谢你。

benkel 发表于 2012-7-15 23:56:03

回复 2# afan

专门进来膜拜A版的正则的!留个脚印,备用!

lpxx 发表于 2012-7-16 09:03:29

慢慢学习正则,人老记性差了。

xiaowo 发表于 2012-7-16 09:07:45

正在学习正则,发现好容易忘记啊

zmdzhxj 发表于 2019-10-30 16:26:59

这个有用,学习了。
页: [1]
查看完整版本: 请教怎么样匹配记事本中的文字?