Назад | Перейти на главную страницу

Сценарии оболочки и регулярное выражение: какое из них лучше соответствует числам, [[: digit:]] или [0-9]?

Как видно из названия, какой из них лучше соответствует числам, [[:digit:]] или [0-9]?

Я использую оболочку bash

Спасибо :)

Единственная причина, по которой [[:digit:]] должен использоваться для поддержки языков, в которых используются цифры, отличные от 0-9. Например, арабско-индийские цифры: ٠١٢٣٤٥٦٧٨٩ (Unicode от U + 0660 до U + 0669). В противном случае для индо-арабских цифр 0123456789, [0-9] работает одинаково хорошо [[:digit:]].

# 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

Я мог бы, вероятно, написать быстрый сценарий для их усреднения, и, держу пари, я обнаружил бы, что средние значения идентичны, но это определенно дает вам идею.