1
嗯,我得到它的工作,但不知何故,它看起来很慢,效率低(或可能不)。有效匹配必须是序列的可选字符
我所得到的是字符序列,为简单起见,让我们只说这是
123456789
我想要做的就是确保输入开始以同样的方式,并且是在同序列,但不需要是完整的序列。
我有什么是这样的:
^1(2(3(4(5(6(7(8(9)?)?)?)?)?)?)?)?
这看起来很可怕,但有一个更好的方式来做到这一点?
编辑新增的^
这是在原来的代码,我忘了,包括在这里。
哎呀,我忘了在原始问题中使用的正则表达式的开头添加'^',以确保它匹配字符串的开头。 所以我假设有这么多嵌套'((?)?)在这种情况下可以吗? – Shaw
这应该是好的。请记住,()是一个捕获缓冲区,而(?:)用于聚类子表达式。一些引擎可能对可用捕获缓冲区的数量有限制。我看着Perl,并没有看到对嵌套分组的限制。我认为这个级别与堆栈有关。 Perl对递归级别有一个编译限制。认为它大约是50.这可能是相关的,但我不确定。 – sln