@@ -2571,22 +2571,29 @@ <h3 id="regex-operator">Regex operator</h3>
25712571< p > < code > =~</ code > is an infix operator that matches the left-hand side with a regular expression literal on the right-hand side. Regular expression literals use a syntax similar to that found in JavaScript, where the pattern to match is surrounded by slashes, < code > /pattern/</ code > , optionally followed by flags, < code > /pattern/flags</ code > .</ p >
25722572< div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-43-1 "> < a id ="__codelineno-43-1 " name ="__codelineno-43-1 " href ="#__codelineno-43-1 "> </ a > $..products[?(@.description =~ /.*trainers/i)]
25732573</ span > </ code > </ pre > </ div >
2574+ < p > You can escape a solidus (< code > /</ code > ) with a reverse solidus (< code > \</ code > ).</ p >
2575+ < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-44-1 "> < a id ="__codelineno-44-1 " name ="__codelineno-44-1 " href ="#__codelineno-44-1 "> </ a > $.some[?(@.thing =~ /fo\/[a-z]/)]
2576+ </ span > </ code > </ pre > </ div >
2577+ < p > As a Python string literal, you'd need to double escape the reverse solidus or use a raw string literal.</ p >
2578+ < div class ="language-python highlight "> < pre > < span > </ span > < code > < span id ="__span-45-1 "> < a id ="__codelineno-45-1 " name ="__codelineno-45-1 " href ="#__codelineno-45-1 "> </ a > < span class ="n "> query</ span > < span class ="o "> =</ span > < span class ="sa "> r</ span > < span class ="s2 "> "$.some[?(@.thing =~ /fo\/[a-z]/)]"</ span >
2579+ </ span > < span id ="__span-45-2 "> < a id ="__codelineno-45-2 " name ="__codelineno-45-2 " href ="#__codelineno-45-2 "> </ a > < span class ="n "> query</ span > < span class ="o "> =</ span > < span class ="s2 "> "$.some[?(@.thing =~ /fo</ span > < span class ="se "> \\</ span > < span class ="s2 "> /[a-z]/)]"</ span >
2580+ </ span > </ code > </ pre > </ div >
25742581< h3 id ="union-and-intersection-operators "> Union and intersection operators</ h3 >
25752582< p > The union or concatenation operator, < code > |</ code > , combines matches from two or more paths.</ p >
25762583< p > The intersection operator, < code > &</ code > , produces matches that are common to both left and right paths.</ p >
25772584< p > Note that compound queries are not allowed inside filter expressions.</ p >
25782585< h4 id ="syntax_8 "> Syntax</ h4 >
2579- < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-44 -1 "> < a id ="__codelineno-44 -1 " name ="__codelineno-44 -1 " href ="#__codelineno-44 -1 "> </ a > jsonpath-query = root-identifier segments
2580- </ span > < span id ="__span-44 -2 "> < a id ="__codelineno-44 -2 " name ="__codelineno-44 -2 " href ="#__codelineno-44 -2 "> </ a >
2581- </ span > < span id ="__span-44 -3 "> < a id ="__codelineno-44 -3 " name ="__codelineno-44 -3 " href ="#__codelineno-44 -3 "> </ a > compound-jsonpath-query = jsonpath-query compound-op jsonpath-query
2582- </ span > < span id ="__span-44 -4 "> < a id ="__codelineno-44 -4 " name ="__codelineno-44 -4 " href ="#__codelineno-44 -4 "> </ a >
2583- </ span > < span id ="__span-44 -5 "> < a id ="__codelineno-44 -5 " name ="__codelineno-44 -5 " href ="#__codelineno-44 -5 "> </ a > compound-op = "|" /
2584- </ span > < span id ="__span-44 -6 "> < a id ="__codelineno-44 -6 " name ="__codelineno-44 -6 " href ="#__codelineno-44 -6 "> </ a > "&"
2586+ < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-46 -1 "> < a id ="__codelineno-46 -1 " name ="__codelineno-46 -1 " href ="#__codelineno-46 -1 "> </ a > jsonpath-query = root-identifier segments
2587+ </ span > < span id ="__span-46 -2 "> < a id ="__codelineno-46 -2 " name ="__codelineno-46 -2 " href ="#__codelineno-46 -2 "> </ a >
2588+ </ span > < span id ="__span-46 -3 "> < a id ="__codelineno-46 -3 " name ="__codelineno-46 -3 " href ="#__codelineno-46 -3 "> </ a > compound-jsonpath-query = jsonpath-query compound-op jsonpath-query
2589+ </ span > < span id ="__span-46 -4 "> < a id ="__codelineno-46 -4 " name ="__codelineno-46 -4 " href ="#__codelineno-46 -4 "> </ a >
2590+ </ span > < span id ="__span-46 -5 "> < a id ="__codelineno-46 -5 " name ="__codelineno-46 -5 " href ="#__codelineno-46 -5 "> </ a > compound-op = "|" /
2591+ </ span > < span id ="__span-46 -6 "> < a id ="__codelineno-46 -6 " name ="__codelineno-46 -6 " href ="#__codelineno-46 -6 "> </ a > "&"
25852592</ span > </ code > </ pre > </ div >
25862593< h4 id ="examples_8 "> Examples</ h4 >
2587- < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-45 -1 "> < a id ="__codelineno-45 -1 " name ="__codelineno-45 -1 " href ="#__codelineno-45 -1 "> </ a > $..products.*.price | $.price_cap
2594+ < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-47 -1 "> < a id ="__codelineno-47 -1 " name ="__codelineno-47 -1 " href ="#__codelineno-47 -1 "> </ a > $..products.*.price | $.price_cap
25882595</ span > </ code > </ pre > </ div >
2589- < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-46 -1 "> < a id ="__codelineno-46 -1 " name ="__codelineno-46 -1 " href ="#__codelineno-46 -1 "> </ a > $.categories[?(@.name == 'footwear')].products.* & $.categories[?(@.name == 'headwear')].products.*
2596+ < div class ="language-text highlight "> < pre > < span > </ span > < code > < span id ="__span-48 -1 "> < a id ="__codelineno-48 -1 " name ="__codelineno-48 -1 " href ="#__codelineno-48 -1 "> </ a > $.categories[?(@.name == 'footwear')].products.* & $.categories[?(@.name == 'headwear')].products.*
25902597</ span > </ code > </ pre > </ div >
25912598
25922599
0 commit comments