以下哪项更有效,更好用?
value.replaceAll("['‘’`]","")
value.replaceAll("['‘’`]+","")
我的猜测是,对于没有被替换的字符串的字符串,或者至少没有它们的序列,两者是相同的,或者第一个更好是不那么复杂.
但是,如果我正在查看字符串被替换的字符串,那该怎么办?
第二个会更好吗?
'abababababababab'.replaceAll("ab","")
V.S.
'abababababababab'.replaceAll("(ab)+","")
如果这对于这个问题很重要,我正在使用Java.
解决方法:
根据分析,我会说第一个选项比第二个更快.虽然我必须说这种差异不容易衡量,除非你有一个巨大的字符串作为输入(或复杂的正则表达式).
所以我们称之为regex1:
'abababababababab'.replaceAll("ab","")
这个正则表达式2:
'abababababababab'.replaceAll("(ab)+","")
我们可以看到regex1只有char序列;而regex2有一个group,一个char序列和一个必须相应解释的quantifier metacharacters(更多信息here).因此regex2需要比regex1更多的处理.
尽管如此,使用Pattern和Matcher更复杂的正则表达式是一个更快的选择……(更多信息here).
标签:java,regex,performance
来源: https://codeday.me/bug/20190709/1414712.html