kanluohua 发表于 2014-10-27 16:25:09

请教触发语句中排除匹配的问题(zmud,cmud)

本帖最后由 kanluohua 于 2014-10-27 08:43 AM 编辑

pattern:{闲聊|北大|谣言}
command:#cap chat;#gag

一般上述语句会正常执行。但假设还有中情况北大侠客行,要排除这种情况应该怎么匹配语句?
{^string} do not match the specified string
这个是cmud的help文档。正则中貌似有个[^xxx]。看说明这两个都是进行排除匹配的。但没研究明白语句应该怎么写- -
{闲聊|北大|谣言|^北大侠客行}行不通,#sh 北大侠客行的时候还是会执行触发指令。改成{闲聊|北大|谣言|{^北大侠客行}}会导致#sh闲聊之类的也不触发……

请大家指教怎么进行排除触发,能用zmud或cmud本身语法实现最好;如果不能,正则表达式我了解一点基础,通过正则表达式能够实现也成……

北大侠客行MUD,中国最好的MUD

oolong 发表于 2014-10-27 22:09:04

回复 1# kanluohua

^(?!你)(\S{4,12})$
这样就是匹配set brief 1 下房间名称。把你正忙等等去除。
前提是房间名称小于6个字...

kanluohua 发表于 2014-10-28 09:08:39

回复 2# oolong


    谢谢。有点理解,貌似思路是正则限制长度。但还是有困惑却又表达不清楚,等我再学习一段时间再说吧。主要是总感觉那个的匹配有点诡异问题。。。。比如按我原先理解是匹配a,b,c,ab,cb,abc等任意数量[]范围内字符的排列组合,但实际测试发现类似ax,xay,ybz之类的也会引起触发……貌似现在应该把理解成“匹配包含任意个[]内字符的语句”……反正到现在还是绕得有点迷糊- -
页: [1]
查看完整版本: 请教触发语句中排除匹配的问题(zmud,cmud)