作者:NGA-—Λ︵Λ—
1,价格过滤
a/b/o 代表一口价,b/o则是竞价,中间价格数字的左右符号为空格,最后货币单位需要用英文,我只记得c混沌石 e崇高石 m是镜子,其他的自己查一下吧。
举例:
“a/b/o (1([0-2].|30)|..?) c”上面写法代表一口价0-130c。()括起来的部分可以作为一个整体进行逻辑 与(空格隔开)、或(|隔开)、非(开头加!号)处理。 []中代表你自定义的符号集,[0-2]表示这一位可以是0、1、2 。[abc]则表示这一位可以是a、b、c。
符号.可以代替任意一位字符,一般不确定是什么符号,或者懒得敲别的就用.代替即可。.? 问号表示前一位符号可以出现0或者1次。 一般可以用 1..? 表示匹配 10-199 , 1?.?. 则可以表示匹配0-199.这么写比较节约字符。
2,装备孔色过滤
孔色是用英文的首字母表示,r=红 b=蓝 g=绿 w=白 。用-连接, 未连接用空格隔开。比如r-r-b 代表3连 2红1蓝,r-r b-g 代表4洞,2红连接 蓝绿连接。
举例1:
“([rgbw]-|[rgbw]$){5}” {}中填入5代表6连,填入n代表至少n+1连,比如一个5连装备,它的连接表述为 r-g-b-w-g r ,那么很简单,我们只需要匹配 [rgbw]- 满足4个就可以了。
但是如果是后5洞连接,表述为 r g-b-w-g-r ,那么[rgbw]-只重复了4次,最后是[rgbw]结尾,那么我们可以用 [rgbw]$ 表示,{}表示前面()的内容重复若干次,a{5}可以匹配aaaaa 这种5个连续a或以上的内容。
举例2:(r.*){1} (g.*){2} (b[^/]+|b$){3} (w.*){0},上面这个写法代表匹配1红2绿3蓝的6洞装备。
各色孔数量填入对应的{}中即可,可以按需求分开组合使用,蓝色b因为和a/b/o冲突需要特殊过滤,[^/]表示不包含/符号的其他字符,+号表示前面的内容匹配1次到无限次,其实就是排除掉a/b/o这部分干扰。
.* 星号代表前面的字符重复0到无限次,配合.符号代表匹配任意符号任意次,一般用来匹配之后的所有内容。(g.*){2} 可以理解为匹配到第一个绿孔+任意内容+直到匹配第二个绿孔,所以可以过滤出2绿孔以上的装备。
上面没考虑连接,如果要搜已经连接的孔,使用(r-.*|r$){1} (g-.*|g$){2} (b-.*|b$){3} (w-.*|w$){0}。
r$ 代表匹配以r字符结尾,装备孔r后面要么跟-要么就是结尾了,所以要匹配到这两种情况下r出现的次数。
PS:因为游戏市集搜索长度有限(只有50个英文字符,含空格),过滤3孔色之后就只剩下11个可用字符了。这种麻烦的东西还是去网页市集搜比较好。另外如果有正则相关的问题可以提问,在线解答。
原创文章,作者:xiaotian,如若转载,请注明出处:https://www.jjekm.com/yxgl/28379.html