- 单纯的替换,正则的效率比 replace 低三倍左右
- 那什么时候正则的效率比 replace 高呢?
import re,timeit str = "abcdefghigkqpwueriwutghlskajdf,mnbz,xcnvoiequynf12341234321065498+7mnbz,xcnvoiequynf12341234321065498+7mnbz,xcnvoiequynf12341234321065498+7mnbz,xcnvoiequynf12341234321065498+7" # pattern1 start = timeit.default_timer() for i in range(1000000): tst = re.sub("mn|123|[abcdef7]", "", str) stop = timeit.default_timer() print('pattern1', 'Time: ', stop - start) # pattern2 start = timeit.default_timer() for i in range(1000000): tst = str.replace("mn", "") tst = tst.replace("123", "") tst = tst.replace("a", "") tst = tst.replace("b", "") tst = tst.replace("c", "") tst = tst.replace("d", "") tst = tst.replace("e", "") tst = tst.replace("f", "") tst = tst.replace("7", "") stop = timeit.default_timer() print('pattern2', 'Time: ', stop - start) # pattern3 start = timeit.default_timer() for i in range(1000000): tst = re.sub("mn", "", str) stop = timeit.default_timer() print('pattern3', 'Time: ', stop - start) # pattern4 start = timeit.default_timer() for i in range(1000000): tst = str.replace("mn", "") stop = timeit.default_timer() print('pattern4', 'Time: ', stop - start) # 输出 # pattern1 Time: 10.851562640495892 # pattern2 Time: 4.726493571613192 # pattern3 Time: 1.5144934460814898 # pattern4 Time: 0.5535754144044809 