2013-11-08 3 views
6

я просто нужно знать, как сделать регулярное выражение, которое принимает число, которое имеет до 2-х цифрБаш получить регулярное количество выражений до 2-х цифр

Все, что я только сейчас

^[0-9]{2}$ 

Который соответствовал бы числу с ровно 2 цифрами, но я не знаю, как указать «сопоставить число, которое имеет до двух цифр».

Кроме того, если есть способ убедиться, что это число не равно 0, это будет плюсом, иначе я могу проверить это с помощью Bash.

Спасибо! :)

Обратите внимание, что входная переменная приходит от чтения -p «сделать выбор» Номер

редактированием ПОСТ - SHOWING КОД В КОНТЕКСТЕ:

while true; do 
    read -p "Please key in the number of the engineer of your choice, or leave empty to select them all: " Engineer 
    if [ -z "$Engineer" ]; then 
     echo "No particular user specified, all engineers will be selected." 
     UserIdSqlString="Transactions.Creator!=0 " 
     break 
    else 
     if [[ $Engineer =~ ^[0-9]{1,2}$ && $Engineer -ne 0 ]]; then 
      echo "If you want a specific engineer type their number otherwise leave blank" 
     else 
      echo "yes" 
      break 
     fi 
    fi 
done 
+0

Вы используете 'grep' или' sed' или что-то еще? – naomik

+0

Я редактировал свой пост. Я не против вовлекать grep или sed вообще :) – Bluz

+1

@Bluz, у вас есть 'if-else' назад. 'if [[$ Engineer = ~^[0-9] {1,2} $ && $ Engineer -ne 0]]; 'возвращает true, когда у вас есть ненулевой двузначный номер, установленный в' Engineer', поэтому 'echo 'yes'' должен следовать этому – iruvar

ответ

6

bash [[ условное выражение поддерживает расширенные регулярные выражения.

[[ $number =~ ^[0-9]{,2}$ && $number -ne 0 ]] 

или как неподражаемый @gniourf_gniourf указывает в своих комментариях следующее необходимо для обработки чисел с ведущими нулями правильно

[[ $number =~ ^[0-9]{,2}$ ]] && ((number=10#$number)) 
+0

+1, ну это еще лучше;) – EverythingRightPlace

+0

Я этого не знал! Огромное спасибо ! : D – Bluz

+0

mmmhhh .... Кажется, не работает :(Я могу добавить ноль. Обратите внимание, что переменная исходит из read -p. Я не знаю, является ли это актуальным, но я отредактирую свой вопрос только в case – Bluz

3

-_- искали это для 20 минут и только что нашел ответ сразу после того, как я разместил это ...^[0-9] {1,2} $

Смежные вопросы