Here is the string and I have managed to get rid of [] and ().
text='Lee Jong-jae(Season1) Nam Sung-woo[1]'
This one gets rid of both Parentheses and brackets?
text.str.replace(r"[(\[].*?[\)\]]", "")
I tried to add regex for removing brackets and white spaces but to no avail.
text.str.replace(r"[(\[].*?[\)\]\\s-] ", "")
I want it to look like this:
Lee Jong jae, Nam Sung woo
Thanks again for your help.
CodePudding user response:
You can use
import re
text='Lee Jong-jae(Season1) Nam Sung-woo[1]'
pattern = r'(\[[^][]*]|\([^()]*\))|[\s-] '
print( re.sub(pattern, lambda m: ',' if m.group(1) else ' ', text).strip(', ') )
See the Python demo.
Output:
Lee Jong jae, Nam Sung woo
See the regex demo.
Details:
(\[[^][]*]|\([^()]*\))
- Group 1: substrings between the closest square or round brackets|
- or[\s-]
- one or more whitespaces or hyphens.
If Group 1 matches, the replacement is a comma, else, it is a space. Extra commas or spaces are strip
ped with strip(', ')
.