|
本帖最后由 robotdown 于 2013-12-6 04:17 AM 编辑
2013-12-06最终更新:已经搞定,特意百度搜索正则中\b的用法,结果发现闹了半天困扰我N久的问题原来是基本不存在的问题,真心崩溃- -
直接\bwest\b这样匹配就可以了……英文可以这样解决,但中文里面\b无效,就有待高人解决了,能精确界定英文单词已经基本够我使用了。
题目:
1、分别以north,northwest,west为pattern建立3条不同触发,要求三条触发能同时生效并且不互相干扰。
举例:屏幕上显示north时(任意位置,所以行首和行尾控制无效,下同),在屏幕上输出“北”(#show 北),显示northwest时输出“西北”,显示west时输出“西”。
在下所遇难点:长pattern好控制,比如northwest直接建立触发语句即可,但长pattern里包含的短pattern却会产生干扰,比如northwest触发西北,north触发北,但是northwest里包含的“north”还会触发一次北产生干扰,个人苦思良久,好在zmud721支持正则表达式,所以使用正则表达式中的\b通配符,把north的pattern写成north\b可以解决northwest中的north干扰问题,但问题又来了,northwest里还包含一个west,会对west的正常触发造成干扰,我看到的正则教程帖中说“\b通配单词的开头或者结尾”,所以我用north\d通配结尾解决了north的干扰问题,但northwest中的west应该是使用\d的通配开头功能,但通配开头的结尾我不会写,写成\bnorth会造成干扰(成了bnorth单词了……),所以诚心请教\b通配单词开头的写法。
2、如果1的问题能够解决,那么题目换成汉字短触发,分别以北,西北,西为pattern建立3条不同触发,要求三条触发能同时生效并且不互相干扰。比如屏幕上显示北时输出north,显示西北时输出northwest,显示西时输出west……经本人测试,正则中的\d无法判断汉字的结尾,所以比题1难度更大……此题有解么?(可以用正则表达式)
疑问总结:
1、正则中\b匹配单词的开头应该怎么写代码?
2、用正则能不能实现这样一种带字符长度匹配功能(暂定一个汉字2个字符,一个英文字母或数字等1个字符):北(2)表示匹配含北的2个字符的pattern,这样通过字符长度控制就可以避免诸如西北(西北2个汉字4个字符)中的北对单个北的干扰。同理,north(5)来避免northwest的干扰。
看了下正则通配符,里面有个长度匹配{n},但试了一下里面的长度匹配应该是匹配未确定内容的相关数量字符(比如north{5}匹配的是north后面再加上5个字符),但现在需要的是控制已知字符内容的长度,在下苦思无解- -,特向各路高手求助。
3、或者可有其他方法可以实现避免被包含短词语的触发干扰问题?
2013-12-05更新:看了几位朋友的回帖,本人表示很汗。主要问题应该还是我没说明白。特在此作下补充:
1、在下所说的可以用正则表达式主要是在pattern匹配部分可以用正则表达式,至于pattern匹配后触发的指令里最好不用其他脚本,因为我对脚本了解非常有限,而且貌似zmud721里也不支持其他脚本。
2、至于我所想是想的功能是这样的:看zmud721帮助文件,介绍721支持mxp,并且举了几个应用例子,在下便突发奇想,想通过在zmud721客户端编写触发来实现鼠标化操作。先要搞定的是鼠标行走,一般mud中的出口描述是这样:这里明显的出口是north,northwest和west(仅以此情况举例)。通过mxp写个触发,当屏幕上出现方向就给该方向加个mxp的send触发,那么该方向就带有了超链接功能,直接鼠标点击即可进行行走。此功能实现后还可以进一步给其他功能加上鼠标链接触发,实现基于客户端的mud鼠标化操作。但是问题是会出现前文所述触发干扰,northwest这种的点击单词的后半部分会触发west的w而不是整个单词应该触发的nw。
思路就是这样。附上mxp加触发(重点就是红色的那一句):
Using MXP in the #SUBSTITUTE command
Instead of using the #MXP command to send Secure MXP commands to the screen, you can also create a trigger and then use the #SUBSTITUTE command to add MXP commands to the text. For example,
#TRIGGER {north} {#SUB {~north~}}
will replace the word "north" whenever it is displayed by the MUD and replace it with the text north which creates a hyperlink. If you click on the "north" hyperlink, the command "north" is sent to the MUD.
北大侠客行MUD,中国最好的MUD |
|