2013-03-13 141 views
0

我有这个string = "abc('abt')",我想提取这个值。reg从括号中提取内容

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

回答

3

下面是会发现里面单一切正则表达式括号内的引号。它搜索后面带有单引号的左括号,然后收集导致另一个单引号和右括号的所有内容:

>>> import re 
>>> s = "abc('abt')" 
>>> regex = re.compile("\('(.*)'\)") 
>>> m = re.search(regex, s) 
>>> m.group(1) 
'abt' 
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,没有测试过,但我认为你有这个想法。

1

.strip()需要设置要删除的字符。您正在删除所有的a,b,c,(,',/)字符形成的开始和结束。然后只剩下t

你可能分裂的'代替:

string.split("'")[1] 

,或者你可以明确地从一开始就删除的确切文字,并用切片结束:

string[5:-2]