2016-06-09 83 views
0

我想從文件中提取測試牀名稱。這是名字出現的地方,我怎麼能用Python做到這一點?在python模式匹配後grep一個字符串

Status: aaa (image='some_image_name' on testbed='test_bed_name' archiving) 

我想分裂字符串走索引的,但此行可能無法在我的所有文件相同。可能會有一些小的變化。

+0

Downvote:請證明你自己的努力到目前爲止;如果沒有代碼,我們無法確切知道你卡在哪裏或者你已經知道了多少。此外,對於單個樣本,很難概括 - 多個樣本行和/或我們不應包含的事例將顯着集中問題。 – tripleee

回答

0

如果格式總是這樣,你可以簡單地切開自己的方式來對地方了:

>>> s.split('=')[-1].split(' ')[0][1:-1] 
test_bed_name 

或者,您可以使用正則表達式:

>>> re.findall(r"(?:.*?)testbed='(.*?)'(?:.*?)", s) 
test_bed_name 

以上是對正則表達式的一種蹩腳的方法,但你總是可以調整它來使其更加精確。

+0

謝謝,但我得到了正則表達式的語法錯誤。我是新手。能否請你幫忙? – RowenaRavenclaw

+0

你有沒有檢查過使用正確的''''檢查更新,那裏有一個小錯字 –

+0

解決了這個問題,謝謝。 – RowenaRavenclaw

2

眺望。

>>> re.search("(?<=testbed=')([^']+)'", "Status: aaa (image='some_image_name' on testbed='test_bed_name' archiving)").groups() 
('test_bed_name',)