「+99」、「-82」、「5」、「auto」、「max」などの文字列を一致させようとしています== autoとmax、および符号付きまたは符号なしの数値(整数など)
正規表現を試しました
var='^([+|-]{0,1}[0-9][0-9]*)|(auto)|(max)$'
しかし、「少なくともn回、ただしm以下」の場合は失敗します。私の場合は{0,1}とにかく、var='ab{0,1}'とvar='ab{2}'をテストしました。どちらも機能しません
私はそれ以上のことはしませんでしたが、次の問題はこれらによって起こり得ると思います:()
#!/ bin / bashバージョン4.2.24(1)を使用しています
前もって感謝します!
edit1: この正規表現をグループ化する方法がわかりませんか?KarolyHorvathが提案したように機能すること。どこかで見つけたこのチェック機能を使っています。
#!/bin/bash
INTEGER_MAX='^([+-])?[0-9][0-9]*$'
function isNumeric() {
check=`echo $1 | sed "s/\($2\)//"`
if [ -z ${check} ]; then
return 0
else
return 1
fi
}
isNumeric "$1" "$INTEGER_MAX" && echo "passed"
edit2-解決済み
それはで働いています
RE='(^([+-])?[0-9]+$)|(^auto$)|(^max$)'
でテスト済み
[[ $string =~ $pattern ]] && echo "passed"
THX!