正则表达式提取特定部分

时间:2016-10-23 11:01:02

标签: python regex

我有一个字符串'(test)skip(test774)2;3(xx2324)''skip'这个词的存在是必要的。

re.search('skip[(].+[)]', args[0]).group(0)

给了我'skip(test774)',但不是'test774'。我可以使用切片[5:-1]来获取'test774',但它太笨拙了

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

1 个答案:

答案 0 :(得分:2)

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

re.search('skip[(]([^)]+)[)]', args[0]).group(1)

我所做的更改是你有.+(任何非空字符序列)的地方,我有([^)]+)(一个包含除{{1}以外的非空字符序列的捕获组这意味着匹配的这一部分会在第一个)之前停止,而不是在最后一个)之前停止,而)会停止。

regex101.com demo and explanation