./foo/baz/bar/filename.c
コンテキスト内の形式のパスに一致する正規表現を見つけようとしています[[ $string =~ $regex ]]
。
regex=$'(^\./).*$'
が一致することを期待していましたが、${BASH_REMATCH[1]}
空のままでした。括弧をエスケープするか、 を省略しようとしましたが、うまくいきませんでした.*
。
BASH_REMATCH
ネストされたキャプチャ グループへのアクセスが他のコンテンツを介してどのように機能するかという優れた方法 (ネスト レベルとキャプチャ グループの右側に 1 つの追加インデックス) を見つけました$string
が、これを一致させることができません。
私の失敗とは何でしょうか?
答え1
$string
変数 inも、先頭にドル記号を付けずに、または一重引用符で囲んで引用符で[[ $string =~ $pattern ]]
囲まれて動作します。$'...'
'...'