I have a string \"Name(something)\" and I am trying to extract the portion of the string within the parentheses!
Iv\'e tried the following solutions but don\'t seem
You can look for (
and )
(need to escape these using backslash in regex) and then match every character using .*
(capturing this in a group).
Example:
import re
s = "name(something)"
regex = r'\((.*)\)'
text_inside_paranthesis = re.match(regex, s).group(1)
print(text_inside_paranthesis)
Outputs:
something
Without regex you can do the following:
text_inside_paranthesis = s[s.find('(')+1:s.find(')')]
Outputs:
something
as an improvement on @Maroun Maroun 's answer:
re.findall('\(([^)]+)', s)
it finds all instances of strings in between parentheses
You can use re.match
:
>>> import re
>>> s = "name(something)"
>>> na, so = re.match(r"(.*)\((.*)\)" ,s).groups()
>>> na, so
('name', 'something')
that matches two (.*)
which means anything, where the second is between parentheses \(
& \)
.
You can use split as in your example but this way
val = s.split('(', 1)[1].split(')')[0]
or using regex
You can use a simple regex to catch everything between the parenthesis:
>>> import re
>>> s = 'Name(something)'
>>> re.search('\(([^)]+)', s).group(1)
'something'
The regex matches the first "(", then it matches everything that's not a ")":
\(
matches the character "(" literally([^)]+)
greedily matches anything that's not a ")"