2 deleted 83 characters in body

## Python, 7567 bytes

lambda s:eval("s"+(""s"+".replace('%s','')"*4%('[]'[],'()','{}','<>'))*len(s))==''


Generates and evals an expression that looks like

s.replace('[]','').replace('()','').replace('{}','').replace('<>','').replace('[]','').replace('()','').replace('{}','').replace('<>','')


and checks if the result is empty.

Using re.sub came close (75Sp3000 saved 8 bytes). I didn't see a nice way to put it in a by pointing out that lambda[],(),{} can be subbed in without quotes because they're Python objects, either recursively or via an eval chainand that two parens were unneeded.

import re
def f(s):
for _ in s:s=re.sub('{}|<>||','',s)
return''==s


## Python, 75 bytes

lambda s:eval("s"+(".replace('%s','')"*4%('[]','()','{}','<>'))*len(s))==''


Generates and evals an expression that looks like

s.replace('[]','').replace('()','').replace('{}','').replace('<>','').replace('[]','').replace('()','').replace('{}','').replace('<>','')


and checks if the result is empty.

Using re.sub came close (75 bytes). I didn't see a nice way to put it in a lambda, either recursively or via an eval chain.

import re
def f(s):
for _ in s:s=re.sub('{}|<>||','',s)
return''==s


## Python, 67 bytes

lambda s:eval("s"+".replace('%s','')"*4%([],(),{},'<>')*len(s))==''


Generates and evals an expression that looks like

s.replace('[]','').replace('()','').replace('{}','').replace('<>','').replace('[]','').replace('()','').replace('{}','').replace('<>','')


and checks if the result is empty.

Sp3000 saved 8 bytes by pointing out that [],(),{} can be subbed in without quotes because they're Python objects, and that two parens were unneeded.

1

## Python, 75 bytes

lambda s:eval("s"+(".replace('%s','')"*4%('[]','()','{}','<>'))*len(s))==''


Generates and evals an expression that looks like

s.replace('[]','').replace('()','').replace('{}','').replace('<>','').replace('[]','').replace('()','').replace('{}','').replace('<>','')


and checks if the result is empty.

Using re.sub came close (75 bytes). I didn't see a nice way to put it in a lambda, either recursively or via an eval chain.

import re
def f(s):
for _ in s:s=re.sub('{}|<>||','',s)
return''==s