正則表達式\d和[0-9]的區別

正則表達式中,\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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章