0

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

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

4

3 回答 3

2

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

>>> import re
>>> s = "abc('abt')"
>>> regex = re.compile("\('(.*)'\)")
>>> m = re.search(regex, s)
>>> m.group(1)
'abt'
于 2013-03-13T21:35:49.140 回答
1

.strip()需要一字符来删除。您正在删除开头和结尾的所有, , a, b,c(字符'。只剩下了。/)t

'您可以改为拆分:

string.split("'")[1]

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

string[5:-2]
于 2013-03-13T21:24:21.890 回答
0
^[^=]*=\sabc\(['"]?(\w+)['"]\)$

此正则表达式将捕获您想要的内容到第一组。我不确定如何在 python 中提取它的值,让我谷歌一下 :)

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

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

抱歉,我手头没有 Python,没有经过测试,但我想你已经明白了。

于 2013-03-13T21:24:05.683 回答