有效匹配必须按顺序排列的可选字符

时间:2012-05-14 16:02:12

标签: regex

嗯,我得到了它的工作,但不知何故,它看起来缓慢而低效(或者可能不是)。

我所拥有的是一系列角色,为简单起见,我们只是说它是

123456789

我想要做的是确保输入以相同的方式开始,并且顺序相同,但不一定是完整的序列。

我得到的是:

^1(2(3(4(5(6(7(8(9)?)?)?)?)?)?)?)?

这看起来很可怕,但还有更好的方法吗?

修改添加了原始代码中的^,我忘了在此处添加。

1 个答案:

答案 0 :(得分:1)

A?量词就像一个备件。想想没有它的引擎运行良好。如果可能的话,它会试着加入它。

当然x?x?x?x?x?看起来很糟糕。但是,除非与它周围的某些背景一起使用,否则它几乎毫无意义。

假设您的分组仅用于表示选项,您可以使用此1(2(3(4(5(6(7(89?)?)?)?)?)?)?)?将最后一个内部组分解出来。

示例:

1(2(3(4(5(6(7(8(9)?)?)?)?)?)?)?)?将全局匹配此

987654321 1111111111111112121211112121121212312111多次。

所以,它的所有亲戚。