🖥
#Jq コマンドで #JSON からの正規表現でのマッチをおこなう例
ref
文字列からのマッチ
マッチ情報がオブジェクトで返ってくる
$ echo '"Alice"' | jq 'match("A")'
{
"offset": 0,
"length": 1,
"string": "A",
"captures": []
}
マッチした文字を出力
$ echo '"Alice"' | jq 'match("A").string'
"A"
$ echo '"Alice"' | jq 'match("(A)")'
{
"offset": 0,
"length": 1,
"string": "A",
"captures": [
{
"offset": 0,
"length": 1,
"string": "A",
"name": null
}
]
}
キャプチャする
$ echo ‘“Alice”’ | jq ‘match(“(A)(l)(i)(c)(e)“)’
{
“offset”: 0,
“length”: 5,
“string”: “Alice”,
“captures”: [
{
“offset”: 0,
“length”: 1,
“string”: “A”,
“name”: null
},
{
“offset”: 1,
“length”: 1,
“string”: “l”,
“name”: null
},
{
“offset”: 2,
“length”: 1,
“string”: “i”,
“name”: null
},
{
“offset”: 3,
“length”: 1,
“string”: “c”,
“name”: null
},
{
“offset”: 4,
“length”: 1,
“string”: “e”,
“name”: null
}
]
}
キャプチャした文字列
$ echo ‘“Alice”’ | jq ‘match(“(A)(l)(i)(c)(e)“).captures[].string’
“A”
“l”
“i”
“c”
“e”
名前付きキャプテゃ
(特に意味のない例)
$ echo ‘“Alice”’ | jq ‘match(“(?<first_letter>A)(l)(i)(c)(e)“).captures[].name’
“first_letter”
null
null
null
null
Original by Github issue
チャットメンバー募集
何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。
公開日時
2019-04-20
Discussion