Python 正则表达式提取特定部分

Python 正则表达式提取特定部分,python,regex,Python,Regex,我有一个字符串”(test)skip(test774)2;3(xx2324)。单词'skip'的出现是必要的 re.search('skip[(].+[)]', args[0]).group(0) 给我'skip(test774),但不是'test774'。我可以使用切片[5:-1]来获得'test774',但这太笨拙了 使用正则表达式仅获取括号中的值(“test774”)的最简单方法是什么?要隔离所需的文本,请在正则表达式中与该文本匹配的部分周围使用捕获组 re.search('skip[(

我有一个字符串
”(test)skip(test774)2;3(xx2324)
。单词
'skip'
的出现是必要的

re.search('skip[(].+[)]', args[0]).group(0)
给我
'skip(test774)
,但不是
'test774'
。我可以使用切片
[5:-1]
来获得
'test774'
,但这太笨拙了


使用正则表达式仅获取括号中的值(“test774”)的最简单方法是什么?

要隔离所需的文本,请在正则表达式中与该文本匹配的部分周围使用捕获组

re.search('skip[(]([^)]+)[)]', args[0]).group(1)
我所做的更改是,您有
+
(任何非空字符序列),我有
([^)]+)
(包含非空字符序列的捕获组,而不是
;这意味着这部分匹配将在第一个
之前停止,而不是像
+
那样在最后一个
之前停止


要隔离所需的文本,请在正则表达式中与该文本匹配的部分周围使用捕获组

re.search('skip[(]([^)]+)[)]', args[0]).group(1)
我所做的更改是,您有
+
(任何非空字符序列),我有
([^)]+)
(包含非空字符序列的捕获组,而不是
;这意味着这部分匹配将在第一个
之前停止,而不是像
+
那样在最后一个
之前停止


您是否考虑过在实际需要的零件周围添加捕获组?您是否考虑过在实际需要的零件周围添加捕获组?以下是输入示例。您需要在捕获组lazy
(.+?)
中进行评估,或者,为了获得更好的性能,只需取消一个右括号
([^)]+)
。我建议您删除一个指向debuggex/regex101的链接,并解释为什么与他所做的相比,这是有效的。这样,有类似问题的人可能会更好地了解如何解决他们的问题。只有代码的答案通常被认为是低质量的。这就是示例输入。您需要在捕获组lazy
(.+?)
中进行评估,或者,为了获得更好的性能,只需取消一个右括号
([^)]+)
。我建议您删除一个指向debuggex/regex101的链接,并解释为什么与他所做的相比,这是有效的。这样,有类似问题的人可能会更好地了解如何解决他们的问题。只有代码的答案通常被认为是低质量的。