除了replace对一个字符串进行链接(即text.replace(a, b).replace(c, d).replace(e, f)...)以外,是否有其他建议的方法来进行多个字符串替换?例如,您将如何实现行为类似于htmlspecialcharsPython中的PHP的快速功能?
replace
text.replace(a, b).replace(c, d).replace(e, f)...
htmlspecialchars
我比较了(1)多种replace方法,(2)正则表达式方法和(3)Matt Anderson方法。
在n = 10次运行时,结果如下:
在100个字符上:
时间:0毫秒[replace_method(str)] 时间:5毫秒[regular_expression_method(str,dict)] 时间:1毫秒[matts_multi_replace_method(list,str)]
在1000个字符上:
时间:0毫秒[replace_method(str)] 时间:3毫秒[regular_expression_method(str,dict)] 时间:2毫秒[matts_multi_replace_method(list,str)]
在10000个字符上:
时间:3毫秒[replace_method(str)] 时间:7毫秒[regular_expression_method(str,dict)] 时间:5毫秒[matts_multi_replace_method(list,str)]
在100000个字符上:
时间:36毫秒[replace_method(str)] 时间:46毫秒[regular_expression_method(str,dict)] 时间:39毫秒[matts_multi_replace_method(list,str)]
在1000000个字符上:
时间:318毫秒[replace_method(str)] 时间:360毫秒[regular_expression_method(str,dict)] 时间:320毫秒[matts_multi_replace_method(list,str)]
在3687809个字符上:
时间:1.277524秒[replace_method(str)] 时间:1.290590秒[Regular_expression_method(str,dict)] 时间:1.116601秒[matts_multi_replace_method(list,str)]
对于replace在相当大的输入字符串上击败multi方法,Matt表示敬意。
有人有想法在较小的琴弦上击败它吗?
通常,.replace方法胜过所有其他方法。(请参阅上面的基准。)
.replace