正則表達式中,\d和[0-9]
都用於匹配數字
區別在於:\d的匹配範圍比[0-9]
更廣泛
例如:中文輸入法輸入全角數字,\d能匹配而[0-9]
不能
Python代碼示例
import re
a = '1234567890'
print(re.findall('[0-9]', a))
print(re.findall('[0-9]', a))
print(re.findall('\d', a))
打印結果
[]
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']
時間測試
[0-9]
範圍更小,因此速度更快
from re import search
from time import time
a = 'abcde' * 99
t0 = time()
[search('[0-9]', a) for _ in range(999999)]
t1 = time()
[search('\d', a) for _ in range(999999)]
t2 = time()
print('時間測試結果', t1 - t0, t2 - t1)
時間測試結果 3.1126251220703125 5.270697116851807