freeway 发表于 2011-10-7 13:25:27

MUSH中正则如何匹配多行

比如有段描述


AAAAAAA
BBBBBBB
CCCCCC


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

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

这个应该怎么写呢.

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

freeway 发表于 2011-10-7 16:13:19

triggers
match="^(|> )([\w\W]*)\Z"

lua
print (line)
每行下面怎么总是重复一行呢

freeway 发表于 2011-10-7 18:58:15

^(|> )(.*)\s[-]\s\n([\w\W]*)\s+这里(.*)的出口是\s+(.*)。([\W\(\w\)]*)$


<trigger
   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"
>
</trigger>

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

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

l
                            南门               
                            南门               
                           ↓   
                           ↓   
                   山路← 青石大道            
                   山路← 青石大道            
                                  \
                                  \
                                     青石大道
                                     青石大道
青石大道 -
青石大道 -
      你走在一条青石大道上,人来人往非常繁忙,不时地有人骑着马匆匆而过。
      你走在一条青石大道上,人来人往非常繁忙,不时地有人骑着马匆匆而过。
大道两旁有一些小货摊,似乎是一处集市。北边通向扬州城。南面不远处是扬子津
大道两旁有一些小货摊,似乎是一处集市。北边通向扬州城。南面不远处是扬子津
渡口,可以乘船渡过长江。
渡口,可以乘船渡过长江。
    「初秋」: 更深夜沉,满天繁星。
    「初秋」: 更深夜沉,满天繁星。
    这里明显的出口是 northdown、westup 和 southeast。
    这里明显的出口是 northdown、westup 和 southeast。
>
>
help
详细的帮助可以在http://www.pkuxkx.net/中获得。
详细的帮助可以在http://www.pkuxkx.net/中获得。

freeway 发表于 2011-10-7 19:02:02

look
                            山门               
                           |   
                            山路               
                           |   
                            山路               

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

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

这样的正则要怎么写呢 ?

freeway 发表于 2011-10-7 19:14:59

附件不能上传jpg图片,说格式不对,ttk_13

在regex match tracer里验证过 ,能获取0-6个参数,为啥在mush里就会重复触发呢。

freeway 发表于 2011-10-7 19:52:14

http://pkuxkx.net/forum/viewthread.php?tid=14674&highlight=%D5%FD%D4%F2

应该是正则没写好导致的,\Z无效

freeway 发表于 2011-10-7 21:32:50

在regex match tracer里验证通过的表达式,写到XML插件里,出现双重触发
直接写到 trigger里,Note ( " %2 " ) 打印出来 string "触发器: "]:3: unfinished string near '"                                             '
写了个简单的TR加\Z,MUSH里通过,挪到regex match tracer里验证不通过,我该听谁的....
ttk_01

[ 本帖最后由 freeway 于 2011-10-7 10:11 PM 编辑 ]

freeway 发表于 2011-10-7 23:21:06

用了蛋疼的办法,终于把这个正则搞定了。
页: [1]
查看完整版本: MUSH中正则如何匹配多行