Please enable JavaScript to use regex101
/
^
r
e
g
e
x
[
\
-
_
]
?
1
0
1
$
/
i
Reg
ular
Ex
pressions
101
Upgrade to Pro
Enterprise
Regular Expression
/
# Define the opening and closing elements before the recursion occurs (?(DEFINE) (?<open_curly>\{) (?<close_curly>\}) (?<open_square>\[) (?<close_square>\]) (?P<open_pascal>(?i:\bbegin\b)) (?P<close_pascal>(?i:\bend\b)) (?P<open_lua>--\[) (?P<close_lua>--\]) (?<open>\g'open_curly'|\g'open_square'|\g'open_pascal'|\g'open_lua') (?<close>\g'close_curly'|\g'close_square'|\g'close_pascal'|\g'close_lua') ) # Match the opening element (\g'open' (?> # For recursion, don't match either the opening # or closing element (?!\g'open'|\g'close')(.) | # Recurse this captured pattern (?-1) )* # Match the closing element \g'close')
/
gx
Input 1
1
New
EVENLY BALANCED curly braces {{{}}} { test1 { test2 { test3 { test4 } } } } UNEVENLY BALANCED curly braces {{{{}}} { test1 { test2 { test3 { test4 } } } } } MULTI-LINE EVENLY BALANCED curly braces { } MULTI-LINE UNEVENLY BALANCED curly braces {{ } EVENLY BALANCED square braces [ test1 [ test2 [ test3 [ test4 ] ] ] ] EVENLY BALANCED square and curly braces { test1 [ test2 { test3 [ test4 ] } ] } UNEVENLY BALANCED square and curly braces { test1 [ test2 { test3 [ test4 ] } } ]
Extraction
EVENLY BALANCED curly braces {{{}}} { test1 { test2 { test3 { test4 } } } } UNEVENLY BALANCED curly braces {{{{}}} { test1 { test2 { test3 { test4 } } } } } MULTI-LINE EVENLY BALANCED curly braces { } MULTI-LINE UNEVENLY BALANCED curly braces {{ } EVENLY BALANCED square braces [ test1 [ test2 [ test3 [ test4 ] ] ] ] EVENLY BALANCED square and curly braces { test1 [ test2 { test3 [ test4 ] } ] } UNEVENLY BALANCED square and curly braces { test1 [ test2 { test3 [ test4 ] } } ]