正如标题所示,哪一个更适合匹配数字,[[:digit:]]
或者[0-9]
?
我正在使用 bash shell
谢谢 :)
答案1
唯一的原因是[[:digit:]]
必须可以使用 来支持使用 以外的数字的语言环境0-9
。例如阿拉伯-印度数字:٠١٢٣٤٥٦٧٨٩
(Unicode U+0660 至 U+0669)。否则,对于印度-阿拉伯数字0123456789
,[0-9]
其作用与 相同[[:digit:]]
。
答案2
# time grep -oE '[[:digit:]]' /etc/services
...
real 0m0.029s
user 0m0.017s
sys 0m0.013s
# time grep -oE '[0-9]' /etc/services
...
real 0m0.029s
user 0m0.016s
sys 0m0.012s
我可能可以编写一个快速脚本来计算它们的平均值,而且我敢打赌我会发现平均值是相同的,但它确实给了你这个想法。