请教个lua内的正则问题
我想匹配你晃动着手中的木棒,到处寻找目标。
我怕前面带>,怕后面带空格,于是我这么匹配
l,w = wait.regexp("^>*你晃动着手中的木棒,到处寻找目标。%s*$");
结果就是匹配不到
(lua里用%s代表空格)
如果把%s*去掉,或者换成.*,都能匹配到
按理说,*,是0到任一个,那我在任何地方加%s*,都不应该啊
谁知道,帮忙看看呗,多谢
北大侠客行MUD,中国最好的MUD 把*换成-,依然不行
l,w = wait.regexp("^>*你晃动着手中的木棒,到处寻找目标。%s-$");
我的理解,*号,应该可以匹配0次到多次,为什么0次就不行了呢? l,w = wait.regexp("^[> ]*你晃动着手中的木棒,到处寻找目标。\\s*$"); 唷,研究+回帖的功夫,沙发都木有了。。看来小苏学业有成啊:-)
to 楼主:
lua的正则表达式和mush的正则表达式遵循的标准不同,具体请百度 回复 5# cappuccino
我就是对照着lua的手册看的......
我自己研究了一下,最后成功的如下
^[>]*[ ]*[%s]*你晃动着手中的木棒,到处寻找目标。[%s]*$
其实核心就是多个[]罢了
当然,之前我之所以加了[>]*[ ]*[%s]*
这么一长串,是因为有的时候有>,而>之后还有空格,更可恨的是,空格并不是空格,ascii是17的东西......我怕他有真假空格,所以干脆都加上了...... 另外,我看的lua书里,都是用的%,而不是\
%s%d%x%X
等等等等
跟mush里的的确不同 原来mush和lua不一样,难怪有些要加上[]才有效,学习了
页:
[1]