我想知道何时使用 regex VS"string".contains("anotherString")和/或其他 String API 调用是否有任何一般准则?
虽然上面给出的决定.contains()是微不足道的(如果您可以在一次调用中完成此操作,为什么还要费心使用正则表达式),但现实生活会带来更复杂的选择。.contains()例如,进行两次调用还是单个正则表达式更好?
我的经验法则是始终使用正则表达式,除非可以用单个 API 调用替换它。这可以防止代码膨胀,但从代码可读性的角度来看可能不太好,特别是当正则表达式趋于变大时。
另一个经常被忽视的论点是性能。我如何知道这个正则表达式需要多少次迭代(如“Big O”中)?它会比纯粹的迭代更快吗?不知何故,每个人都认为一旦正则表达式看起来短于 5 个if语句,它一定会更快。但情况总是如此吗?如果正则表达式无法提前预编译,这一点尤其重要。