非常简单。什么是最快的正则表达式将返回任何输入的真实?
编辑:为什么下来投票?似乎是一个非常合理的问题。我使用一个带有正则表达式过滤器的函数,我想知道什么能使它最快地匹配所有内容。 “不使用正则表达式”不是一个答案。
答案 0 :(得分:4)
class FastestRegex
{
public static readonly Regex RE = new Regex("", RegexOptions.Compiled);
}
答案 1 :(得分:1)
我会说它必须像
.*?
将检查与任何字符的匹配,但由于惰性运算符,根本不匹配任何字符串。我想它会在检查第一个字符之前返回。这假设空字符串对于所有输入都不返回true。
答案 2 :(得分:1)
我猜测空字符串""
或输入开始"^"
会导致任何字符串的最快(正)匹配。
你应该自己尝试一下:运行一些快速测试,模式"^"
通常比Oracle 1.6 JRE上的""
快,但是在Mono 2.4上,反之亦然。在这两种情况下,.*?
方式较慢。
但是再次:在你自己的系统上测试一些东西。
答案 3 :(得分:0)
没有最快的正则表达式永远不会运行正则表达式。因此,最快的正则表达式是实际运行的正则表达式。 /[\S\s]?/
或者,我猜这更快/.?/s
Addon - 虽然/^/
在{2}中有更快的成功,但在perl循环中的速度更快。但是,预编译所有正则表达式首先会使它们全部减慢5倍。去图。也许是因为它太简单了。