2015-11-06 27 views
-3

我在Python 3.4編程。 我正在讀取不同文件中的行,並且當我到達包含特定字符串的行時,我只想從該行提取路徑字符串。 例子:Python正則表達式提取字符串從行

文件行是:

TEST_CASE_CHECK = require("TestCases/AOL/TU_Extract_Log_Details") 

我搜索:require("TestCases

我想只能提取:TestCases/AOL/TU_Extract_Log_Details

我知道這可以用正則表達式來完成,但我做不到弄清楚如何去做。

+0

請把你的嘗試。 – SirParselot

+0

看看[*提取雙引號之間的字符串*](http://stackoverflow.com/questions/22735440/extract-a-string-between-double-quotes),可能也適合你。 –

回答

0

我不知道你行的其餘部分看起來像但這應該工作

import re 

s = 'TEST_CASE_CHECK = require("TestCases/AOL/TU_Extract_Log_Details")' 

mat = re.search(r'(TestCases.*)"',s) 
if mat: 
    print(mat.group(1)) 

TestCases/AOL/TU_Extract_Log_Details 
+0

非常感謝!有效。 –

+0

@mariusalex如果這是您想要的解決方案,請不要忘記點擊綠色檢查。 – SirParselot

0

是不是你在找什麼?

import re 
p = re.compile(ur'require\("(TestCases[^"]*)') 
test_str = u"TEST_CASE_CHECK = require(\"TestCases/AOL/TU_Extract_Log_Details\")" 

re.findall(p, test_str) 

https://regex101.com/r/zJ0sM3/1

0
import re 

line = 'TEST_CASE_CHECK = require("TestCases/AOL/TU_Extract_Log_Details")' 

result = re.match(r'.*require.+"([^"]*)".*', line) 

print result.groups()[0] # prints "TestCases/AOL/TU_Extract_Log_Details"