我有这个string = "abc('abt')"
,我想提取值。
我试过:string = string.strip("abc('/)")
我正在使用python。如果结果是't',但我想'abt'。我该怎么办?
答案 0 :(得分:3)
这是一个正则表达式,它将在括号内的单引号内找到所有内容。它搜索一个左括号后跟一个引号,然后收集导致另一个单引号和右括号的所有内容:
>>> import re
>>> s = "abc('abt')"
>>> regex = re.compile("\('(.*)'\)")
>>> m = re.search(regex, s)
>>> m.group(1)
'abt'
答案 1 :(得分:1)
.strip()
需要删除 set 字符。您要从开头删除所有a
,b
,c
,(
,'
,/
和)
字符并结束。只剩下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,没有经过测试,但我认为你已经有了这个想法。