protectqiqi
发表于 2024-4-3 22:55:03
ambi 发表于 2024-4-2 07:02 AM
只有我一个人关心那个错误是什么吗
和你有莫大的关系,所以绝对不能让你知道!绝对不!
protectqiqi
发表于 2024-4-3 22:55:40
jarlyyn 发表于 2024-4-2 04:31 PM
let chinesere = /[%u4e00-%u9fa5]/g
正则匹配中文,不全,但够用。
按这个大佬说的做,没错的。。。
protectqiqi
发表于 2024-4-4 13:00:54
本帖最后由 protectqiqi 于 2024-4-4 01:04 PM 编辑
刚才有人QQ上问我为什么他的hpbrief匹配不行。。。然后我看了下他的设置(图1),他把要匹配的三个不同格式的内容放在同一个Trigger里面了。看来还要再拿这个例子讲一下匹配的细节。
正确的思路应该是这样的:
1. hpbrief的行首是一个#,这样很好,匹配的时候把#放在最前,可以防止被别的内容误触发。
2. 它的第一行和第二行只有两个细微的差别,第一行的第一个数字一般会带有小数点,并且后面会有字母K或者M。这两个小差别很重要,是在匹配时区分第一行和第二行的关键。
3. 那么第一行就用下面这个表达式来匹配。其中+就表示第一个数字除了0-9之外,还会有小数点。表示第一个数字后面会有字母M或者K。fig1到fig都是我起的变量名字。(哎呀。。。这里的字符又被自动过滤掉了,你看的是表达式是错的,正确的请看附件里的第三张图吧。)
#(?<fig1>+),(?<fig2>\d+),(?<fig3>\d+),(?<fig4>\d+),(?<fig5>\d+),(?<fig6>\d+)
4. 第二行的匹配需要新建一个Trigger,不能和第一行混在一起。第二行的表达式更简单,就是行首的#,加上六个数字,中间有逗号间隔。(哎呀。。。这里的字符又被自动过滤掉了,你看的是表达式是错的,正确的请看附件里的第三张图吧。)
#(?<fig1>\d+),(?<fig2>\d+),(?<fig3>\d+),(?<fig4>\d+),(?<fig5>\d+),(?<fig6>\d+)
5. 这样两个Trigger就能把hpbrief里面的12个数字都提取出来了。
顺带就能讲一下怎么用提取出来的变量了。如果变量不需要做数学计算,那么直接用
matches.变量名
就可以把它用在Trigger窗口下方的Lua code里。
比如我在这里用的Lua code是:
send("\nsay exp = " ..matches.fig1)
send("\nsay pot = " ..matches.fig2)
send("\nsay 内力 = " ..matches.fig3)
send的作用是向游戏发送指令。\n是换行,双引号“”里面的内容是会直接发送的,所以 matches.变量名 不能放在“”里面,这里的matches.fig1matches.fig2matches.fig3就会把在Trigger里匹配到的内容代入到里面。两个小点..表示把前后两个字符连接起来。最后的效果可以看图2。
还有一点要注意的是,用这种方法提取出来的变量只能在单个Trigger里面使用,而不能跨Trigger。所以上面的两个Trigger里我都用的fig1 - fig6,它们并不会互相干扰。如果要跨Trigger使用变量,就需要到Variable模块里面去创建变量,等以后再慢慢讲。
dtp
发表于 2024-4-4 13:03:37
第一行就是第一行,第二行就是第二行,和格式无关,和行号有关。
zhangchenyun
发表于 2024-4-4 13:06:32
好牛都要开课了
protectqiqi
发表于 2024-4-4 13:09:49
zhangchenyun 发表于 2024-4-4 01:06 PM
好牛都要开课了
大佬~~我不想肝经验了,我想学mudlet。
ambi
发表于 2024-4-4 13:41:23
protectqiqi 发表于 2024-4-3 10:55 PM
和你有莫大的关系,所以绝对不能让你知道!绝对不!
yct35啊?不会是想抢我第一美的光环吧
zhangchenyun
发表于 2024-4-4 22:32:56
protectqiqi 发表于 2024-4-4 01:09 PM
大佬~~我不想肝经验了,我想学mudlet。
不错啊,这个比肝经验有成就感的
marsflyer
发表于 2024-4-7 13:12:17
继续继续!
hellfire
发表于 2024-4-11 15:50:09
小白请教一下
││[主]│破阵(275) 61.7% │仍需二十六秒才能接到下个任务。 我如果想取出“二十六”的话,应该怎么匹配?谢谢了