この正規表現がbashで機能しないのはなぜですか?
if [[ "$vl" =~ ^ *[{-].* ]]; then
私は空白の数に関係なく一致させたいと思い{
ます-
。
答え1
テスト構成に使用されたら、スペースを脱出する必要があります。
if [[ "$vl" =~ ^\ *[{-].* ]]; then
しかし、通常、正規表現を変数に格納する方が良い方法と考えられます。
pattern='^ *[{-].*'
if [[ "$vl" =~ $pattern ]]; then
*
また、使用するスペースが1つ以上あることを確認したい場合は、使用されているように0から無限スペースまで一致します。+
また、.*
正規表現は行全体と一致する必要はないので、終わりは必要ありません。
pattern='^ +[{-]'