正则表达式替换的复杂性问题接近问题,但并不相同。根据theprise的回复,(DFA引擎的)复杂度是:
O(2^m + n) [其中 m 是正则表达式的长度,n 是字符串的长度]
红皮书《算法设计手册》第15-16页讨论了不同算法的时间。据此,当算法长度超过 1,000,000 时,O(m^2) 的算法就没有希望了。处理时间为 16.7 分钟,假设运算时间为 1 纳秒。
书中的陈述增加了我的兴趣。你能在 16.7 分钟的处理时间内完成 1,000,000 个字符的正则表达式吗?你能做一个灾难性的正则表达式并且处理时间仍然存在吗?我真的很怀疑。
多项式时间内运算时间为一纳秒的最长可能正则表达式是多少?