Shell 脚本和正则表达式:哪一个更适合匹配数字,[[:digit:]] 还是 [0-9]?

Shell 脚本和正则表达式:哪一个更适合匹配数字,[[:digit:]] 还是 [0-9]?

正如标题所示,哪一个更适合匹配数字,[[: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

我可能可以编写一个快速脚本来计算它们的平均值,而且我敢打赌我会发现平均值是相同的,但它确实给了你这个想法。

相关内容