请教文本指令中的正则表达式使用问题

使用问题 · 734 次浏览
DQ_Ye 创建于 2023-03-21 09:14

如题,在文本指令中可以使用正则表达式,如下图是官方教程

我想弄成w为前置触发词,例如输入的是wmmy或wscl,正则提取传递给动作的内容为w后面内容,即mmy或scl,但是怎么试都不行,使用过w\w*,在正则表达式验证网是能找到wmmy,而没有把w去掉

不太懂怎么设置成我想要的效果,请教各位大佬

我想要的效果是,w作为相当于触发词,如输入w123,传递给动作的是123,输入wmmy,传递给动作的是mmy这样,应该如何设置这个文本指令的缩写次呢


回复内容
CL 2023-03-21 09:17
#1

在正则中使用括号表示组,提取第一个组中的内容。所以这里大概应该是  w(其他内容的匹配正则)


DQ_Ye 回复 CL 2023-03-21 11:42 :

老大我改成\\(\w+)好像也不行,这个触发词还是   \   ,然后动作参数是  \  后的所有内容,应该怎么该成触发词是w,然后提取我后面内容呢,搞不太明白在

DQ_Ye 回复 DQ_Ye 2023-03-21 18:01 :

自己摸索试了好久,使用这个可以:   (?<=w)\w+,但是得取消掉勾选“取第一个正则匹配组得值作为动作参数”,不然就会报错,如下提示,不知道老大知不知道原因呢?


已匹配文本指令 (?<=w)\w+,内容:da,但无法提取到匹配组


我输入的是wda,它明明就匹配到了内容da,但是无法提取,不知道为何,取消勾选就能正常了



CL 回复 DQ_Ye 2023-03-21 21:29 :

w(.*) 这个呢?

运营:秋风 2023-03-24 16:05
#2

这个我做过,我的是这样写的。



你可以这样写:

以w开头的,并且后面随便跟着的是数字或者是 字母。限制长度为2-4个,\w代表匹配所有的数字和字母含下划线。

则写法为:

w[\w]{2,5}


传递的参数,直接用一个替换文本,把首个字母 替换成无即可。 用正则替换:

替换之后,就是没有w的输入指令结果了。 

运营:秋风 最后更新于 2023-03-24 16:14
DQ_Ye 回复 运营:秋风 2023-03-27 09:00 :

谢谢提供思路,感谢

回复主贴