我有这个string = "abc('abt')"
,我想提取价值。
我试过:string = string.strip("abc('/)")
我正在使用python。如果结果是't',但我想要'abt'。我该怎么做?
这是一个正则表达式,它将在括号内的单引号内找到所有内容。它搜索一个左括号和一个单引号,然后收集导致另一个单引号和右括号的所有内容:
>>> import re
>>> s = "abc('abt')"
>>> regex = re.compile("\('(.*)'\)")
>>> m = re.search(regex, s)
>>> m.group(1)
'abt'
.strip()
需要一组字符来删除。您正在删除开头和结尾的所有, , a
, b
,c
和(
字符'
。只剩下了。/
)
t
'
您可以改为拆分:
string.split("'")[1]
或者您可以从切片的开头和结尾显式删除确切的字符:
string[5:-2]
^[^=]*=\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,没有经过测试,但我想你已经明白了。