繁体   English   中英

提取括号内的字符串 - PYTHON

[英]Extract string within parentheses - PYTHON

我有一个字符串“Name(something)”,我正在尝试提取括号内的字符串部分!

我尝试了以下解决方案,但似乎没有得到我想要的结果。

n.split('()')

name, something = n.split('()')

您可以使用一个简单的正则表达式来捕获括号之间的所有内容:

>>> import re
>>> s = 'Name(something)'
>>> re.search('\(([^)]+)', s).group(1)
'something'

正则表达式匹配第一个“(”,然后匹配所有不是“)”的内容:

  • \\(字面上匹配字符“(”
  • 捕获组([^)]+)贪婪地匹配任何不是“)”的东西

作为对@Maroun Maroun 回答的改进:

re.findall('\(([^)]+)', s)

它找到括号之间的所有字符串实例

您可以在示例中使用 split ,但这样

val = s.split('(', 1)[1].split(')')[0]

或使用正则表达式

您可以使用re.match

>>> import re
>>> s = "name(something)"
>>> na, so = re.match(r"(.*)\((.*)\)" ,s).groups()
>>> na, so
('name', 'something')

匹配两个(.*)这意味着任何东西,其中第二个在括号\\( & \\)

您可以查找() (需要在正则表达式中使用反斜杠对它们进行转义),然后使用.*匹配每个字符(在一个组中捕获它)。

示例:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM