: regex . , , , 3 , ( !). , ββ:
\((?:[^()]|\([^)]*\))*\)
:
\(
(?:
[^()]
|
\(
[^)]*
\)
)*
\)
3 ! .NET , : ! ( , , IMO)
, Python:
def find_parens(str):
matches = []
parens = 0
start_index = -1
index = 0
for char in str:
if char == '(':
parens = parens+1
if start_index == -1:
start_index = index
if char == ')':
parens = parens-1
if parens == 0 and start_index > -1:
matches.append(str[start_index:index+1])
start_index = -1
index = index+1
return matches
for m in find_parens("dfgdgdfg (aaa.bbb) sfd (c) fdsdfg ( ,ddd (eee) )"):
print(m)
:
(aaa.bbb)
(c)
( ,ddd (eee) )
#, Python , , #, .