2015-11-06 3 views
-3

Я программирую на Python 3.4. Я читаю строки в разных файлах, и когда я добираюсь до строки, содержащей определенную строку, я хочу извлечь только строку пути из этой строки. Пример:Python Regex extract string из строки

строка в файле:

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" 
Смежные вопросы