daliyid 发表于 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

feehoo 发表于 2013-12-7 09:57:01

是想用一个表达式匹配所有人物的中英文名吧

hasea 发表于 2013-12-7 10:06:49

这好像是里面那个括号的问题吧。正则我也不熟。
^(\s+.*|\s+.*」.*)\((.*)\)$
这样应该就是可行的
你用两个触发来做吧。调用同一个函数即可。
或是
^(\s+(.*)\((.*)\)|\s+.*」(.*)\((.*)\))$
试试。
注意这有两个问题。
1、上面这个正则取值应该是%1,%2,%3,%4,%5。%1是全部文字。这样写函数会有些麻烦。用两个触发来做就没有问题了
2、有时人物后面会多一个空格。所以你不能直接$结尾的。应该加个/s?来保证能匹配到所有情况。

另外,正则这种晦涩的东西。我直接写不测试出错的可能高达80%。所以上面写的正则出错完全是可以理解的。yct70

daliyid 发表于 2013-12-7 12:16:36

还是不行 想了一晚上 没弄成功
还是 分 两个做吧

感谢楼上各位 帮忙

daliyid 发表于 2013-12-7 13:29:20

^(\s+.*」|\s+.*\s)(.*)\((.*)\)$

还是白天脑子清醒点,昨天弄了一晚上 没弄出来

wanjia 发表于 2013-12-7 15:46:45

高手
页: [1]
查看完整版本: 关于正则问题求教