2013-03-13 179 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]