[jq] test で文字列が正規表現に一致するか確認する

作成日: 2026年10月24日

jq の test を使用すると、文字列が正規表現に一致するかを true または false で確認できます。

下記の例では、文字列が error: で始まるかを確認しています。

printf '%s\n' '"error: connection failed"' '"info: connected"' | jq 'test("^error:")'

実行結果は下記のとおりです。

true
false

test("^error:") の ^ は文字列の先頭を表します。^ を付けずに test("error:") とした場合は、文字列の途中にある error: にも一致します。

大文字と小文字を区別せずに確認したい場合は、第2引数に "i" を指定できます。

printf '%s\n' '"ERROR: connection failed"' | jq 'test("^error:"; "i")'

実行結果は下記のとおりです。

true

フラグを指定しない場合は大文字と小文字を区別するため、"ERROR: connection failed" に対する test("^error:") の結果は false になります。

参考

jq