You must create a method that can convert a string from any format into CamelCase. This must support symbols too.

*Don't presume the separators too much or you could be surprised.*

### Tests
```python
camelize("example name")   # => ExampleName
camelize("your-NaMe-here") # => YourNameHere
camelize("testing ABC")    # => TestingAbc
```

Difficulty: introductory

Starter code:

def camelize(str_):
	

Solutions:
import re

def camelize(s):
    return "".join([w.capitalize() for w in re.split("\W|_", s)])

import re

def camelize(s):
    return "".join(map(str.capitalize, re.split("\W|_", s)))

import re
def camelize(s):
    return "".join(map(str.capitalize, re.findall(r"[a-zA-Z0-9]+", s)))

def camelize(str_):
    new_str = ''
    new_word = True
    for elem in str_:
        if elem.isalnum():
            new_str += elem.upper() if new_word else elem.lower()
            new_word = False
        else:
            new_word = True
    return new_str

def camelize(str_):
    k = ''
    str_ = str_.lower()
    for x in str_:
        if x.isalnum():
            k += x
        else:
            k += ' '

    return ''.join(x.capitalize() for x in k.split())

import re
def camelize(str_):
    return ''.join(x.capitalize() for x in re.split(r'[\W_]', str_))

import re

def camelize(str_):
    words = re.findall(r'[a-z0-9]+', str_, flags=re.I)
    return ''.join(word.capitalize() for word in words)

import re
def camelize(str_):
    return "".join([i.capitalize() for i in re.findall(r"[A-Za-z0-9]*",str_)])

from string import punctuation as p; camelize = lambda s: ''.join([x.capitalize() for x in reduce(lambda a, kv: a.replace(*kv), [(x, ' ') for x in p], s).split(' ')])

def camelize(string):
    s = ""
    for i in string.lower():
        if i in "qwertyuiopasdfghjklzxcvbnm1234567890":
            s += i
        else:
            s += " "
    s = s.split()
    lst = []
    for i in s:
        lst.append(i[0].upper() + i[1:])
    return "".join(lst)