我有一个字符串“Name(something)”,我试图在括号内提取字符串的一部分!
我尝试了以下解决方案,但似乎没有得到我正在寻找的结果。
n.split('()')
name, something = n.split('()')
答案 0 :(得分:11)
您可以使用简单的正则表达式来捕捉括号之间的所有内容:
>>> import re
>>> s = 'Name(something)'
>>> re.search('\(([^)]+)', s).group(1)
'something'
正则表达式匹配第一个“(”,然后它匹配不 a“的所有内容)”:
\(
匹配字符“(”字面意思([^)]+)
贪婪地匹配任何不是“)”答案 1 :(得分:3)
作为@Maroun Maroun回答的改进:
re.findall('\(([^)]+)', s)
它在括号中找到所有字符串实例
答案 2 :(得分:1)
您可以在示例中使用拆分,但这样
val = s.split('(', 1)[1].split(')')[0]
或使用正则表达式
答案 3 :(得分:1)
您可以查找(
和)
(需要在正则表达式中使用反斜杠转义),然后使用.*
匹配每个字符(将它们捕获在一个组中)。
示例:
import re
s = "name(something)"
regex = r'\((.*)\)'
text_inside_paranthesis = re.match(regex, s).group(1)
print(text_inside_paranthesis)
输出:
something
没有正则表达式,您可以执行以下操作:
text_inside_paranthesis = s[s.find('(')+1:s.find(')')]
输出:
something
答案 4 :(得分:0)
您可以使用re.match
:
>>> import re
>>> s = "name(something)"
>>> na, so = re.match(r"(.*)\((.*)\)" ,s).groups()
>>> na, so
('name', 'something')
匹配两个(.*)
,这意味着什么,其中第二个是括号\(
和& \)
。