Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
class Trigger(MatchObject): def init(self, session, patterns, *args, **kwargs): pass
其中参数 patterns: 匹配模式,应传递字符串(正则表达式或原始数据)。多行触发时,传递一个匹配模式的列表。
之前记得在群里讨论,这样的多行触发无法预估结束边界,所以会出错,现在有好的解决办法么?
PyMUD的多行触发是以开头第一行作为标志的,所以patterns的第一行必须要是一个有明显特征的行。只要首行不会匹配到其他内容,那么后续N行的出发匹配都OK。
或者可以自己定义多个触发器来配合实现总行数不确定的情况,比如第一个触发器tri1仅触发首行,第二个tri2仅触发尾行,第三个触发器tri3用 .* 作为全部匹配。当第一个触发器触发时,打开第三个触发器,然后对每一个进行判断;当第二个触发器触发时,关闭第三个触发器,这样就能全部手动处理了。
@newstart 在 关于多行Trigger的讨论 中说:
嗯,这个方案可行
很多时候都是这么实现的,比如抓房间描述不确定多少行时,用房间名做首行触发,用出口描述做结束触发,中间再判断是什么。
你好!看起来您对这段对话很感兴趣,但您还没有一个账号。
厌倦了每次访问都刷到同样的帖子?您注册账号后,您每次返回时都能精准定位到您上次浏览的位置,并可选择接收新回复通知(通过邮件或推送通知)。您还能收藏书签、为帖子顶,向社区成员表达您的欣赏。
有了你的建议,这篇帖子会更精彩哦 💗