cihron 发表于 2018-3-11 18:30:05

【已解决】一个正则难题

本帖最后由 cihron 于 2018-3-12 12:43 编辑

515253
525354
535455
545556
555657
565758
575859

该如何匹配这样一组 nAnBnC 模式的数字呢?

afan 发表于 2018-3-11 19:17:34

(\d0\d1\d2|\d1\d2\d3|\d2\d3\d4|\d3\d4\d5|\d4\d5\d6|\d5\d6\d7|\d6\d7\d8|\d7\d8\d9)

cihron 发表于 2018-3-11 19:21:38

回复 2# afan


    a版,nAnBnC 中的 n 要求必须是相同的数字呢。

cihron 发表于 2018-3-11 19:24:28

回复 2# afan


    ((\d)1\2\2)|((\d)2\4\4)|((\d)3\6\6)|((\d)4\8\8)|((\d)5\10\10)|((\d)6\12\12)|((\d)7\14\14)

  我是这么搞的,但分组捕获时遇到问题了,只能是 \1 - \9 再往后没招了{:face (394):}

afan 发表于 2018-3-11 20:11:57

回复 4# cihron


    不懂你的意思,实例也没说要匹配出什么结果

cihron 发表于 2018-3-11 20:21:15

回复 5# afan


    哦,可能是没表达清楚。

 是这样,要匹配一组数字是否符合 nAnBnC 规则,奇数位相同,偶数位递增。
 比如 : 515253,343536,171819,252627

afan 发表于 2018-3-11 20:35:36

回复afan


    哦,可能是没表达清楚。

 是这样,要匹配一组数字是否符合 nAnBnC 规则,奇数位 ...
cihron 发表于 2018-3-11 20:21 http://www.autoit3.cn/images/common/back.gif


    你的表达式捕获这个也没问题吧什么鬼\1-\9就没招了

cihron 发表于 2018-3-11 20:43:02

回复 7# afan


    只能到 \9 ,再往后该如何引用???

afan 发表于 2018-3-11 20:54:41

回复afan


    只能到 \9 ,再往后该如何引用???
cihron 发表于 2018-3-11 20:43 http://www.autoit3.cn/images/common/back.gif


    \10 不行?

cihron 发表于 2018-3-11 20:56:25

回复 9# afan


    这正是问题所在,试了好多次都不行。

afan 发表于 2018-3-11 20:57:04

回复 10# cihron


    举例说明下,代码

cihron 发表于 2018-3-11 21:14:02

本帖最后由 cihron 于 2018-3-11 21:20 编辑

回复 11# afan

一直都是使用 sublime 进行正则测试,无法匹配到 \10 以后,在 js 等环境中也是 $1 ~ $9。

刚才在 au3.rehelper 工具中测试,竟然可以匹配 \10 \11 等,

看来这个问题是环境正则环境差异造成的问题。

上图,供参考:







afan 发表于 2018-3-11 21:34:48

回复 12# cihron


    你居然用其它环境测试… 就算都是Au3环境,也有版本差异造成的不同,这也是Au3.REHelper 1.5版添加版本选择功能的原因之一

另外((\d)1\2\2|(\d)2\3\3|(\d)3\4\4|(\d)4\5\5|(\d)5\6\6|(\d)6\7\7|(\d)7\8\8)

cihron 发表于 2018-3-11 21:40:47

回复 13# afan


    主要是 sublime 这个比较直观,比对了几次又没什么差别,

    所以经常这样搞,这次意外了,是个教训。

zghwelcome 发表于 2018-3-11 21:52:26

可以少用些括号,这样是不是也可以
((\d)1\2\2|(\d)2\3\3|(\d)3\4\4|(\d)4\5\5|(\d)5\6\6|(\d)6\7\7|(\d)7\8\8)
页: [1] 2
查看完整版本: 【已解决】一个正则难题