文字MUD游戏论坛-天下泥潭群英会-水泊梁山

文字MUD游戏论坛-天下泥潭群英会-水泊梁山 (http://www.aolai.org/forums/)
-   『 帮派传说 』 (http://www.aolai.org/forums/f6/)
-   -   【马帮】 机器讲座(三)通配符、参数、表达式 (http://www.aolai.org/forums/t7555/)

argus 2004-09-15 16:24

机器讲座(三)通配符、参数、表达式
 
1.Pattern中可以使用的特殊字符

* 匹配任何数量的字符或空格
? 匹配一个字符
%d 匹配任何数量的数字(0-9)
%w 匹配任何数量的字母(a-z)
%a 匹配任何数量的字母或数字(0-9,a-z)
%s 匹配任何数量的空格(spaces, tabs)
%x 匹配任何数量的非空格
[range] 匹配任何数量的在[range]中列出的字符
^ 强制从一行的开始进行匹配
$ 强制匹配到一行的结束
(pattern) 保存匹配的式样到参数%1~%9
~ 包括其中的字符不会被解释为特殊字符
{val1|val2|val3|...} 匹配其中列出的任何特殊的串
{^string} 不匹配其中包括的串

使用[range]时,你可以在其中列出需要的字符例如 [abc] 或使用范围 [a-c] 。

为了匹配特殊字符本身,可以使用~将特殊字符括住,例如:~[test~] 将匹配字符串 [test] 而不是作为 [range] 来匹配。

只使用$可以匹配一个空行。


--------------------------------------------------------------------------------

2.别名中使用参数的例子

我们在解谜过程中向npc提出的问题通常是以:

ask npc about here
ask npc about rumors
ask npc about name

这样三个命令开始的,把他们定义成别名可以节省一些时间,像这样:

#al askn {ask %1 about here;ask %1 about here;ask %1 about name}

可如果npc的名字有两个单词,或一堆同名的npc中你要问其中第二个,就需要把别名中的参数改为%-1,此时执行askn bing 2或askn tian bing就不会出错了。

为了更好的理解参数的作用,试试执行下面的命令:

#al tt test1 %1 test2 %2 test3 %-1 test4 %-2

看看执行{tt a1 a2 a3 a4 a5}的结果,一切都清楚了吧?


--------------------------------------------------------------------------------

3.表达式
当执行运算时,如果所有参数均为数字,则执行数学运算,否则执行字符串操作。以下是一些常用的表达式(v1和v2代表变量或另外的表达式):

v1+v2 如果v1或v2不是数字,则执行字符串相加
v1-v2 从v1中减去v2
v1*v2 相乘
v1/v2 v1除v2,结果不含小数
v1\v2 取模
v1&v2 逻辑运算and
v1 and v2 同上
v1 | v2 逻辑运算or
v1 or v2 同上
v1 xor v2 逻辑运算xor
v1 = v2 如果v1等于v2返回真
v1 > v2 如果v1大于v2返回真
v1 < v2 如果v1小于v2返回真
v1 >= v2 如果v1大于等于v2返回真
v1 <= v2 如果v1小于等于v2返回真
v1 <> v2 如果v1不等于v2返回真
v1 != v2 同上
v1 =~ v2 如果表达式v1中的pattern包含v2,返回真
v1 ~= v2 同上
-v1 返回v1的负值
!v1 逻辑运算非


所有时间均为格林尼治时间 +9, 现在的时间是 01:28.

Powered by SPLS
版权所有 2001-2023 水泊梁山
皖ICP备05012024号

站长 fengyue


Content Relevant URLs by vBSEO 3.6.1