I have a dataframe which looks like this:
>>>df Str 0 .....(((((................((((.(...).))))(((((....))))).(((((((((...))))))).)))))))................. 1 .(((((..(((....(((((((........)))))))..)))..))).)).((((((((((.((..(((....)))....)).))))))))))....... 2 ((((((.(((((.(((...))))))))))....(((.((((.((.(((....))).)).))))..)))))))(..((((...))))..)........... 3 (((((((.((....((.((.((((..((.......(((...))).((((((((...))))))))....))..)))).)).))....))..)))))))...
I want to capture the portion starting from first opening bracket to the last opening bracket. I tried the following code for that:
df["stem"] = df["Str"].str.findall('[(][(.)]+[)]')
df["stem"] = df["stem"].astype("str")
The code does capture the blocks but prints it inside an array starting and ending with square brackets:
['regexblock']
>>>df Str stem 0 .....(((((................((((.(...).))))(((((....))))).(((((((((...))))))).)))))))................. ['(((((................((((.(...).))))(((((....))))).(((((((((...))))))).)))))))'] 1 .(((((..(((....(((((((........)))))))..)))..))).)).((((((((((.((..(((....)))....)).))))))))))....... ['(((((..(((....(((((((........)))))))..)))..))).)).((((((((((.((..(((....)))....)).))))))))))'] 2 ((((((.(((((.(((...))))))))))....(((.((((.((.(((....))).)).))))..)))))))(..((((...))))..)........... ['((((((.(((((.(((...))))))))))....(((.((((.((.(((....))).)).))))..)))))))(..((((...))))..)'] 3 (((((((.((....((.((.((((..((.......(((...))).((((((((...))))))))....))..)))).)).))....))..)))))))... ['(((((((.((....((.((.((((..((.......(((...))).((((((((...))))))))....))..)))).)).))....))..)))))))']
I need to find the length of each block, but due to this addition of special characters I get 4 extra counts. Is there anyway to get rid of these characters while handling regex?
Thanks in advance.