所以,我听说有些人说正则表达式非常低效且速度慢(我特别听说它与C#有关)。 Regex的速度是否正确,是否真的与它们实现的一样糟糕?
如果速度很慢,我应该在大规模应用中使用什么?
答案 0 :(得分:2)
所以,我听说有人说正则表达式非常低效且速度慢
那不是真的。至少在所有情况下都不是这样。只是有些任务可能比正则表达式更适合工具。但声称这样的事情并得出这样的结论是完全错误的。在某些情况下,正则表达式完全正常。
答案 1 :(得分:1)
你必须适当地使用它。不应该是if all you have is a hammer, everything looks like a nail
正则表达式重量大,功能强大,确实会对性能产生影响。你不应该使用简单的操作,比如像substring这样的字符串操作就足够了。并且你不应该将它们用于非常复杂的东西,因为你同时获得了性能,更重要的是可读性。
你绝对不应该尝试使用正则表达式来处理xml,html等并使用适当的解析器。
底线:这是一个工具。将它放在您的工具包中,并适当地使用它。
答案 2 :(得分:0)
正则表达式不如适用于特定情况的其他技术有效。
然而,这并不意味着不应该使用它们。如果它们为您的特定应用提供足够的性能,那么使用它们就可以了。如果您的应用程序性能不足,请进行一些测试以确定问题的原因,而不是仅仅消除所有正则表达式。
此外,有一些聪明的方法可以使用正则表达式。例如,如果您经常执行相同的操作,则缓存并重用正则表达式对象,而不是每次使用它时重新创建它。