簡體   English   中英

在bourne shell腳本中編寫正則表達式

[英]write a regular expression in bourne shell script

我正在編寫一個只接受某種格式的用戶參數的腳本。 像MSK16PCF1_SOURCE之類的東西

即正好是3個Alpha字符,后跟2或3位數字,然后是3或4個字母數字,再跟_,再加上一些alpha字符。

我寫了如下正則表達式。

^[[: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

這應該可以滿足您的所有需求。

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

在Basic grep中,您需要轉義花括號以將花括號表示為重復量詞。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM