![](/img/trans.png)
[英]regex to extract values within parentheses and the word before parentheses using 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.