北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
查看: 3674|回复: 7

MUSH中正则如何匹配多行

[复制链接]
发表于 2011-10-7 13:25:27 | 显示全部楼层 |阅读模式
比如有段描述


AAAAAAA
BBBBBBB
CCCCCC


表达式  从\n(.*\n)*到

只能捕获到 C,而不是我想要的AAAAAAA\nBBBBBBB\nCCCCCC

这个应该怎么写呢.

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 16:13:19 | 显示全部楼层
triggers
match="^(|> )([\w\W]*)\Z"

lua
print (line)
每行下面怎么总是重复一行呢
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 18:58:15 | 显示全部楼层
^(|> )(.*)\s[-]\s\n([\w\W]*)\s+这里(.*)的出口是\s+(.*)。([\W\(\w\)]*)$


      enabled="y"
   lines_to_match="20"
   keep_evaluating="y"
   match="^(|> )(.*)\s[-]\s\n([\w\W]*)\s+这里(.*)的出口是\s+(.*)。([\W\(\w\)]*)$"
   multi_line="y"
   regexp="y"
   script="room_enter"
   send_to="12"
   sequence="100"
  >
  

function room_enter(name, line, wildcards, styles)
    print (line)
end

结果不仅我想要的重复出现,不想要的南门|山路也重复,连打了help命令,也重复了。。。求救。

l
                            南门               
                            南门               
                             ↓     
                             ↓     
                   山路← 青石大道            
                   山路← 青石大道            
                                  \
                                  \
                                     青石大道  
                                     青石大道  
青石大道 -
青石大道 -
        你走在一条青石大道上,人来人往非常繁忙,不时地有人骑着马匆匆而过。
        你走在一条青石大道上,人来人往非常繁忙,不时地有人骑着马匆匆而过。
大道两旁有一些小货摊,似乎是一处集市。北边通向扬州城。南面不远处是扬子津
大道两旁有一些小货摊,似乎是一处集市。北边通向扬州城。南面不远处是扬子津
渡口,可以乘船渡过长江。
渡口,可以乘船渡过长江。
    「初秋」: 更深夜沉,满天繁星。
    「初秋」: 更深夜沉,满天繁星。
    这里明显的出口是 northdown、westup 和 southeast。
    这里明显的出口是 northdown、westup 和 southeast。
>
>
help
详细的帮助可以在http://www.pkuxkx.com/中获得。
详细的帮助可以在http://www.pkuxkx.com/中获得。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 19:02:02 | 显示全部楼层
look
                            山门               
                             |     
                            山路               
                             |     
                            山路               

山路 -
    一条弯弯曲曲的山路
    「初秋」: 东方的地平线上渐渐有了黎明的颜色。
    这里明显的出口是 south 和 north。
    脚夫(Jiao fu)
        路人甲(ID)
        路人乙(ID)

要抓取
房间名:山路 -
房间描述:    一条弯弯曲曲的山路
出口:这里明显的出口是 south 和 north。
其他:    脚夫(Jiao fu)   路人甲(ID)   路人乙(ID)

这样的正则要怎么写呢 ?
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 19:14:59 | 显示全部楼层
附件不能上传jpg图片,说格式不对,

在regex match tracer里验证过 ,能获取0-6个参数,为啥在mush里就会重复触发呢。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 19:52:14 | 显示全部楼层
http://pkuxkx.com/forum/viewthre ... hlight=%D5%FD%D4%F2

应该是正则没写好导致的,\Z无效
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 21:32:50 | 显示全部楼层
在regex match tracer里验证通过的表达式,写到XML插件里,出现双重触发
直接写到 trigger里,Note ( " %2 " ) 打印出来 string "触发器: "]:3: unfinished string near '"                                               '
写了个简单的TR加\Z,MUSH里通过,挪到regex match tracer里验证不通过,我该听谁的....


[ 本帖最后由 freeway 于 2011-10-7 10:11 PM 编辑 ]
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
 楼主| 发表于 2011-10-7 23:21:06 | 显示全部楼层
用了蛋疼的办法,终于把这个正则搞定了。
北大侠客行Mud(pkuxkx.com),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|北大侠客行MUD ( 京ICP备16065414号-1 )

GMT+8, 2024-11-25 12:47 AM , Processed in 0.014452 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表