返回列表 发帖

[AU3基础] 请教一个正则表达式的问题

想从文本里面提取 有规律 的连号,即:
x0123xx
x1234xx
x2345xx
x3456xx
x4567xx
x5678xx
x6789xx

4个数字中,后面的比前一个多1,最后那位最大是 9(这也就限制了最前面的那位数字最大是6了)
如果使用多个正则表达式来获取,再把结果合并到一起,也可以满足,但是感觉太笨了。能否一个表达式就搞掂呢?

这样不行吗
0123|1234|2345|3456|4567|5678|6789

TOP

回复 2# zghwelcome


    谢谢

x 是任意数字,也要一起取出,应该怎样写

TOP

本帖最后由 hnfeng 于 2018-1-12 14:37 编辑

回复 2# zghwelcome


    搞掂了,谢谢


\d0123\d{2}|\d1234\d{2}|\d2345\d{2}|\d3456\d{2}|\d4567\d{2}|\d5678\d{2}|\d6789\d{2}

TOP

(\d(0123|1234|2345|3456|4567|5678|6789)\d{2})

TOP

回复 5# zghwelcome

(\d(0123|1234|2345|3456|4567|5678|6789)\d{2})

    这样好像不行,有取到7位数字的,有取到4位数字的
  1. [0]8123412
  2. [1]1234
  3. [2]8567866
  4. [3]5678
  5. [4]1012356
  6. [5]0123
  7. [6]2123477
  8. [7]1234
  9. [8]4234564
  10. [9]2345
复制代码

TOP

回复 6# hnfeng


    用模式4,取数组的0或1列

TOP

本帖最后由 hnfeng 于 2018-1-12 14:57 编辑

回复 7# zghwelcome


    明白了,还能这样用 谢谢

平时只是用模式3,不懂得其他模式是啥意思

TOP

回复 8# hnfeng
(\d(?:0123|1234|2345|3456|4567|5678|6789)\d{2})
用这个取消第二个分组就行了,可以继续用3

TOP

回复 9# kevinch


谢谢

能用模式3最好用模式3,方便。

不过也稍稍研究了一下模式4,原来每个元素均为一个单独的数组

TOP

返回列表