北大侠客行MUD论坛

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

关于正则问题求教

[复制链接]
发表于 2013-12-7 01:18:17 | 显示全部楼层 |阅读模式
本帖最后由 daliyid 于 2013-12-6 05:22 PM 编辑

分开都可以正常触发

^\s+(.*)\((.*)\)$    -----药铺伙计(Yaopu huoji)--%1=药铺伙计
                                 当铺老板 唐楠(Tang nan)--%1=唐楠
  
^\s+.*」(.*)\((.*)\)$  ---药铺老板「杀人神医」平一指(Ping yizhi)--%1=平一指  
                                    「圣手神偷」胡桂南(Hu guinan)-----%1=胡桂南


然后合在一起 就不能正确触发了    ^(\s+(.*)|\s+.*」(.*))\((.*)\)$

有没有高人指点一下下,感谢

北大侠客行MUD,中国最好的MUD
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-12-7 09:57:01 | 显示全部楼层
是想用一个表达式匹配所有人物的中英文名吧
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-12-7 10:06:49 | 显示全部楼层
这好像是里面那个括号的问题吧。正则我也不熟。
^(\s+.*|\s+.*」.*)\((.*)\)$
这样应该就是可行的
你用两个触发来做吧。调用同一个函数即可。
或是
^(\s+(.*)\((.*)\)|\s+.*」(.*)\((.*)\))$
试试。
注意这有两个问题。
1、上面这个正则取值应该是%1,%2,%3,%4,%5。%1是全部文字。这样写函数会有些麻烦。用两个触发来做就没有问题了
2、有时人物后面会多一个空格。所以你不能直接$结尾的。应该加个/s?来保证能匹配到所有情况。

另外,正则这种晦涩的东西。我直接写不测试出错的可能高达80%。所以上面写的正则出错完全是可以理解的。
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2013-12-7 12:16:36 | 显示全部楼层
还是不行 想了一晚上 没弄成功
还是 分 两个做吧

感谢楼上各位 帮忙
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
 楼主| 发表于 2013-12-7 13:29:20 | 显示全部楼层
^(\s+.*」|\s+.*\s)(.*)\((.*)\)$

还是白天脑子清醒点,昨天弄了一晚上 没弄出来
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
发表于 2013-12-7 15:46:45 | 显示全部楼层
高手
北大侠客行Mud(pkuxkx.net),最好的中文Mud游戏!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-24 05:47 AM , Processed in 0.011238 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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