北大侠客行MUD论坛

 找回密码
 注册
搜索
热搜: 新手 wiki 升级
楼主: hba

正则表达式的问题。

[复制链接]
发表于 2010-4-4 14:05:04 | 显示全部楼层
原帖由 hba 于 2010-4-4 11:44 AM 发表




啧啧,这种低级错误我怎么可能犯呢。看到5楼我贴出来的触发没有。




我原来就是用的\,不行之后试了一下/还不行才发文询问;
ddid回应的我也直接粘贴进去测试不行;
直到丹枫的语句贴进去才测试通过 ...


所以我觉得很奇怪,你的问题应该不是正则写法的问题,有可能是中文字符的问题,你一开始copy的字符可能有问题,所以怎么改都不匹配
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 14:07:12 | 显示全部楼层
原帖由 ddid 于 2010-4-4 12:39 PM 发表


呵呵,其实我经常犯错的,不过呢,知错就改嘛…… 改了再犯…… 犯了再改…… 千锤百炼嘛~

其实这个错误昨晚我就发现了,不过danfeng的回答既然可以通过,我再去修改我的,有点不合适。

现在给个狠一点点 ...
^.*\(你上一个动作还没有完成,不能施用内功。\).*$


这样写不好吧,失去在前面加^和在末尾加$的意义了
这样写和直接写 \(你上一个动作还没有完成,不能施用内功。\)没什么区别
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 15:51:18 | 显示全部楼层
0
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 16:28:15 | 显示全部楼层
这个帖都有资料进精华了..

zeze,各种方法手段呀,各种想法,看的这叫一个舒服
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-4-4 16:43:08 | 显示全部楼层
原帖由 myu 于 2010-4-4 01:43 PM 发表
其实这个表达式的标准写法应该是这样子的
^[>\s]*^.\(你上一个动作还没有完成,不能施用内功。\)$
至于为什么,听我道来
1.前面为什么要用[>\s]而不用(>\s),因为[ ]表示的是字符集,所以无论前面出现多少个>和空 ...


话说这是我一直以来最大的正则问题,一直闹不懂为什么主流正则有这两种写法,有何不同,这下受教了。敢问大侠在mud中是何人?让我膜拜一下。


原帖由 lzkd 于 2010-4-4 11:54 AM 发表

有没有试一下我改的?看行不行?


没试了,忙着啊,你知道的,呵呵。
丹枫那个行了就用了。这次再改myu的。

[ 本帖最后由 hba 于 2010-4-4 04:44 PM 编辑 ]
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2010-4-4 16:47:06 | 显示全部楼层
原帖由 myu 于 2010-4-4 01:43 PM 发表
2.尾部为什么不用.*$,这个是最小匹配原则,当然在这个例子里写不写都无所谓,不过不写.*感觉漂亮而自信。当然你如果不放心,硬要写.*$,我的习惯是不写,不写.*也不写$


不写.*我能理解,但$不写为何?总感觉加个$稳健一些。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 17:16:33 | 显示全部楼层
re25,26:过奖了
我对正则接触得较早,但其实mush是最近才玩的,也算不得什么高人,至于尾部的问题,我看是不是这样解释,加$是为了匹配行尾,与用^强制匹配行首的原理是一样的。但如果写成.*$,表示任意多字符后碰到行尾,这还有意义吗。

.*$的写法与.*^的写法有什么区别呢?写了只是增加其抽象性,对于防止flood毫无作用,不如不写。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 17:26:24 | 显示全部楼层
原帖由 myu 于 2010-4-4 01:43 PM 发表
其实这个表达式的标准写法应该是这样子的
^[>\s]*^.\(你上一个动作还没有完成,不能施用内功。\)$
至于为什么,听我道来
1.前面为什么要用[>\s]而不用(>\s),因为[ ]表示的是字符集,所以无论前面出现多少个>和空 ...


有点笔误哈,正确的应该是
^[>\s]*\( 你上一个动作还没有完成,不能施用内功。 \)$
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 17:38:31 | 显示全部楼层
加^和$都是为了强匹配,其实不用大多数情况下关系不大,只要你机器人有的触发特别要命的时候最好用^[> ]{0,2}TRIGGER$的形式圈起来,以防止出现问题。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2010-4-4 17:47:37 | 显示全部楼层
正则。 ——没有最好,只有更好……
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 05:57 AM , Processed in 0.010908 second(s), 13 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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