PHP preg_match - 非贪婪匹配的最大数量
PHP 正则表达式中允许使用非贪婪 .*?
匹配的次数是否存在已知限制?
我的干草堆有大约 20 万个字符,我必须找出 75 个数字的顺序是否正确。我知道有更好的方法可以在不使用 preg_match 的情况下做到这一点,但为了这个问题,请留在我身边。
我的第一个正则表达式看起来像
@123.*?456.*?789.*?101112@
等,有 75 个数字 - 它失败了。第二种方法:在前 30 个数字之后进行分割,因此我们有两个像上面的正则表达式,第一个有 30 个数字,第二个有 45 个数字。第二个失败了。
第三种方法:在前 40 个数字之后拆分(因此有 40 和 35 个数字)。两者都成功了。
我已经确保数字 39 和 40 是按顺序排列的,所以我的猜测是,preg_match 有一些限制。
Is there a known limit of how many times I am allowed to use the non-greedy .*?
match in a regular expression in PHP?
My haystack is ~ 200k characters and I have to find out, whether 75 Numbers are in the correct order. I know there are better ways to do this without using preg_match, but for the sake of this question, stay with me.
My first regular expression looked like
@123.*?456.*?789.*?101112@
etc. with 75 numbers - it failed.Second approach: Split after the first 30 numbers, so we have two regular expressions like the one above, the first one having 30 and the second one 45 numbers. The second one failed.
Third approach: Split after the first 40 numbers (So there are 40 and 35 numbers). Both succeeded.
I've made sure that number 39 and 40 are in order, so my guess is, that there are some limitations to preg_match.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通过增加该值来检查
Check by increasing this value