很难说清楚这里问的是什么。这个问题模棱两可、模糊、不完整、过于宽泛或修辞,无法以目前的形式合理回答。如果需要帮助澄清这个问题,以便重新讨论,请visit the help center。
十年前就关门了。
什么时候我应该在字符串操作上使用Regex,反之亦然?
很难说清楚这里问的是什么。这个问题模棱两可、模糊、不完整、过于宽泛或修辞,无法以目前的形式合理回答。如果需要帮助澄清这个问题,以便重新讨论,请visit the help center。
十年前就关门了。
什么时候我应该在字符串操作上使用Regex,反之亦然?
4条答案
按热度按时间9cbw7uwe1#
这取决于
虽然字符串操作通常会快一些,但实际性能在很大程度上取决于许多因素,包括:
随着正则表达式变得越来越复杂,编写性能良好的等效字符串操作代码将花费更多的精力和复杂性。
o0lyfsai2#
字符串操作总是比正则表达式操作快,当然,除非你写的字符串操作效率很低。
正则表达式必须被解析,并生成代码以使用字符串操作来执行操作。正则表达式操作最多可以做最优的字符串操作。
使用正则表达式不是因为它们可以比普通字符串操作更快地完成任何操作,而是因为它可以用很少的代码完成非常复杂的操作,开销相当小。
igsr9ssn3#
我用两个函数FunctionOne(字符串操作)和FunctionTwo(正则表达式)做了一些基准测试。它们都应该得到'<'和''之间的所有匹配。
基准1:
基准2:
结论:如果编程效率高的话,字符串操作几乎总是优于正则表达式。但是字符串操作越复杂,就越难在性能和维护方面跟上。
Code FunctionOne
字符串
代码函数二
型
4c8rllxm4#
前一段时间我用C#做了一些分析,比较了以下内容:
1)LINQ到对象。
2)Lambda表达式。
3)传统的迭代法。
所有这三种方法都在使用和不使用正则表达式的情况下进行了测试。在我的测试用例中得出的结论很清楚,在大量文本中搜索字符串时,正则表达式在所有这三种情况下都比非正则表达式慢得多。
你可以在我的博客上阅读详细信息:http://www.midniteblog.com/?p=72