2016-09-22 20 views
0

変数が定義済みの正規表現と一致するかどうかを調べる方法を調べるには、ヘルプが必要です。 VAR1="Abcd,1234"があり、すべてのvarsがregexprベローに一致しなければならないとしましょう。私が見ているように、私のvarはそれがコンマを持っているので、一致しないので、どのようにチェックするのですか? 私は以下のif文を作成しましたが、うまくいきませんでした:BASH変数が一致するかどうかを確認するregexpr

IF [[ ${VAR1} == ^[a-zA-Z0-9`[email protected]#$%^&*()_+-={}|[]:";'?] ]] 

感謝を。コンマを持っていないいくつかの文字列をチェックし

+0

あなたは正しく正規表現に '\は'エスケープ文字を使用する必要があります。 – acornagl

答えて

0
#!/bin/bash 

regex="^[^,]*[^ ,][^,]*$" 
var="$1" 

if [[ "$var" =~ $regex ]] 
then 
    echo "matches"; 
else 
    echo "doesn't match!"; 
fi 

..

+1

正規表現はあまりにも複雑です^^[^、] + $ 'はスペースやカンマではない少なくとも1つの文字を保証するのに十分であったでしょう。 – Tensibai

+0

@天使はい!そうです。 – johnnynemonic

+2

@天才2つの正規表現は同じではありません。 johnnynemonicの式は、文字列 '' x ''にマッチします。しかし、あなたの正規表現がOPの意図と一致することに同意します。 –

関連する問題