reg从括号中提取内容

时间:2013-03-13 21:22:05

标签: python regex

我有这个string = "abc('abt')",我想提取值。

我试过:string = string.strip("abc('/)")我正在使用python。如果结果是't',但我想'abt'。我该怎么办?

3 个答案:

答案 0 :(得分:3)

这是一个正则表达式,它将在括号内的单引号内找到所有内容。它搜索一个左括号后跟一个引号,然后收集导致另一个单引号和右括号的所有内容:

>>> import re
>>> s = "abc('abt')"
>>> regex = re.compile("\('(.*)'\)")
>>> m = re.search(regex, s)
>>> m.group(1)
'abt'

答案 1 :(得分:1)

.strip()需要删除 set 字符。您要从开头删除所有abc('/)字符并结束。只剩下t

您可以在'上拆分:

string.split("'")[1]

或者您可以使用切片显式删除开头和结尾的确切字符:

string[5:-2]

答案 2 :(得分:0)

^[^=]*=\sabc\(['"]?(\w+)['"]\)$

这个正则表达式会捕获你想要的第一组。我不确定如何在python中提取它的值,让我稍微google一下:)

import re
regex = re.compile(r"^[^=]*=\s\"abc\(['""]?(\w+)['""]\)\"$")
input = "string = \"abc('abt')\""
matches = regex.match(input)
your_val = matches.group(1)

请注意,此正则表达式仅适用于具有“值”的字符串,如“abc''”

抱歉,我手头没有Python,没有经过测试,但我认为你已经有了这个想法。