2014-12-11 4 views
0

Я пишу скрипт, который будет принимать пользовательские параметры только определенного формата. Нечто подобное MSK16PCF1_SOURCEнаписать регулярное выражение в скрипте оболочки bourne

т.е. точно 3 Альфа-символы, а затем 2-х или 3-х цифр, а затем 3 или 4 Alphanumeric, а затем _, а затем некоторых альфа-символов.

Я написал регулярное выражение, как показано ниже.

^[[:alpha:]]{2}[A-Z][[:digit:]]{2,3}[0,9][[:alnum:]]{2}[A-Z]?\_[[:alpha:]]* 

но не работает. Можете ли вы предложить, что нужно изменить.

$ cat swf.sh 

vari=MSK16PCF1_SOURCE 
if echo "$vari" | grep -q '^[[:alpha:]]{2}[A-Z][[:digit:]]{2,3}[0,9][[:alnum:]]{2}[A-Z]?_[[:alpha:]]*'; then 
    echo success 
fi 
+1

Где/как вы пытаетесь использовать это регулярное выражение? –

+0

Ниже приведен скрипт swf.sh ######################### vari = MSK16PCF1_SOURCE если эхо "$ vari" | grep -q '^ [[: alpha:]] {2} [AZ] [[: digit:]] {2,3} [0,9] [[: alnum:]] {2} [AZ]? _ [[:альфа:]]*'; затем успех эха fi –

ответ

1

Это должно удовлетворить все ваши потребности.

^[[:alpha:]]{3}[[:digit:]]{2,3}[[:alnum:]]{3,4}_[[:alpha:]]*$ 

В Основном Grep, вы должны экранировать фигурные скобки Симметричных означают фигурные скобки как repitation квантор.

^[[:alpha:]]\{3\}[[:digit:]]\{2,3\}[[:alnum:]]\{3,4\}_[[:alpha:]]*$ 
Смежные вопросы