找回密码
 注册
搜索
查看: 1212|回复: 11

请教“正则”方面的问题

[复制链接]
门派:昆仑派
发表于 2018-12-13 14:18:29 | 显示全部楼层 |阅读模式

    create_trigger_t('wudangFind1','^(> )*\\D*'..job.target..'\\((\\D*)\\)','','wudangTarget')

这个触发 看的迷迷糊糊的。

最搞不懂 “\\” 是什么用法,什么意思?

我查的说是

     上边那么多字母符号有本来的意思,但是会被正则解读成另外的意思。加上\就还是原来的意思。
     \\=\。\*=*。\(\)=()。

还是不太理解为啥要用到这里。。。。
门派:姑苏慕容
发表于 2018-12-13 16:25:05 来自手机 | 显示全部楼层
\\的意思是提示电脑在这后面的不是引用
门派:昆仑派
 楼主| 发表于 2018-12-13 20:20:11 | 显示全部楼层
ooxx@tj 发表于 2018-12-13 16:25
\\的意思是提示电脑在这后面的不是引用

还是不太明白啊 能不能举个例子啥的 大神?
门派:武当派
发表于 2018-12-13 23:35:48 | 显示全部楼层
唉 我看见这俩字 就头疼 我只看得懂 if else 捂脸捂脸
门派:姑苏慕容
发表于 2018-12-14 19:39:52 | 显示全部楼层
create_trigger_t('wudangFind1','^(> )*\\D*'..job.target..'\\((\\D*)\\)','','wudangTarget')

  江南寨主 江婷(Jiang ting)

第一个\\D*==江南寨主,因为没用(),所以不引用
job.target==江婷
第二个\\D*==Jiang ting,你要抓取的只是这个拼音,并不需要红色的(),所以用\\符号注释掉
门派:昆仑派
 楼主| 发表于 2018-12-14 20:37:28 | 显示全部楼层
啊…… 好像是懂点了, 谢谢大神哈  
门派:明教
发表于 2018-12-14 20:51:05 | 显示全部楼层
你懂了,我还是云里雾里的,这mush语言反正跟我无缘了
门派:姑苏慕容
发表于 2018-12-15 13:58:44 | 显示全部楼层
yunny@tj 发表于 2018-12-14 20:37
啊…… 好像是懂点了, 谢谢大神哈

我也小白,不是大神哦,自学的
门派:明教
发表于 2018-12-17 21:46:59 | 显示全部楼层
ooxx@tj 发表于 2018-12-14 19:39
create_trigger_t('wudangFind1','^(> )*\\D*'..job.target..'\\((\\D*)\\)','','wudangTarget')

  江南 ...

懂了!

那后边函数的参数抓取 w[2],w[3],还有func(n,l,w),这里面的参数都是什么意思?w[2],w[3]都是在哪儿定义的呢?
门派:明教
发表于 2018-12-17 21:52:33 | 显示全部楼层
正则一点都不难,不过复杂点的一次成功率很低,总得修改。


正则表达式描述了一种字符串匹配的模式,可以用来检查一个串是否含有某种子串、将匹配的子串做替换或者从某个串中取出符合某个条件的子串等。
正则好像是计算机软件方面常用的东西,倒是非常适合写触发。


先从简了,好入门。然后再系统地学习,慢慢提高。
\d  单个数字。
\w  单个字母。
\s  单个空格。
.    单个数字,字母,空格。
大写是相反的,\D非数字,\W非字母,\S非空格。
————————————————————————————
要匹配多个,后边加上说明就行。
? 0个或1个。
+  1个或多个。
*  0个或多个。
————————————————————————————
\d?=0个或1个数字。
\w+=1个或多个字母。
\s*=0个或多个空格。
.*=0个或多个数字,字母,空格。
————————————————————————————
()   引用。(\d+)写在别名触发里,就可以在下面引用了。
[]   范围。[1-3]匹配1,2,3。[13]匹配1,3。[1|3|5]匹配1,3,5。“|”是选择的意思。
{}  次数。5{3}匹配555。\d{5}匹配5个数。\s{2,5}匹配2-5个空格。
     ?={0,1}
     +={1}
     *={0,}
     后边不写范围,就是无穷大。
————————————————————————————
^   行首。
$   行尾。
\    还原。Zmud里好像是~。
     上边那么多字母符号有本来的意思,但是会被正则解读成另外的意思。加上\就还是原来的意思。
     \\=\。\*=*。\(\)=()。
————————————————————————————————————————————————————
以上为通配符,有点机器人基础的,都很好理解,这对于写mush触发的帮助很大。而且原作者对每个通配符的解释也很到位,就是这样的感觉,嗯。。。。怎么说呢,就是这样用的,没为什么呢。。记死了,就这么用。

网上找的,我也看不大懂。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|书剑永恒MUD ( 闽ICP备14012032号|闽公网安备 35050202000162号 )

GMT+8, 2025-6-9 10:35 , Processed in 0.040143 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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