egex Python para corresponder ao texto entre aspas simples, ignorando aspas escapadas (e guias / novas linha
Dada um arquivo de texto, no qual o caractere que eu quero corresponder é delimitado por aspas simples, mas pode ter zero ou uma aspas simples com escape, além de zero ou mais guias e caracteres de nova linha (sem escape) - quero corresponder apenas ao texto. Exemplo
menu_item = 'casserole';
menu_item = 'meat
loaf';
menu_item = 'Tony\'s magic pizza';
menu_item = 'hamburger';
menu_item = 'Dave\'s famous pizza';
menu_item = 'Dave\'s lesser-known
gyro';
Quero pegar apenas o texto (e os espaços), ignorando as guias / novas linhas - e na verdade não me importo se a citação escapada aparecer nos resultados, desde que não afete a correspondência:
casserole
meat loaf
Tonys magic pizza
hamburger
Daves famous pizza
Dave\'s lesser-known gyro # quote is okay if necessary.
Consegui criar um regex quequas faz - ele lida com as aspas escapadas, mas não com as novas linhas:
menuPat = r"menu_item = \'(.*)(\\\')?(\t|\n)*(.*)\'"
for line in inFP.readlines():
m = re.search(menuPat, line)
if m is not None:
print m.group()
Há definitivamente uma tonelada de perguntas de expressão regular por aí - mas a maioria está usando Perl, e se houver uma que faça o que eu quero, não conseguiria descobrir :) E como estou usando Python, não Como se espalha por vários grupos, é fácil recombiná-los.
lgumas Respostas disseram que basta ir com o código para analisar o texto. Enquanto eu tenho certeza que eupoderi faça isso - eu sou tãoFecha para ter um regex de trabalho :) E parece que édevemo seja factível.
Update: Acabei de perceber que estou fazendo um Pythonreadlines () para obter cada linha, o que obviamente está dividindo as linhas passadas para a regex. Estou procurando reescrevê-lo, mas qualquer sugestão dessa parte também seria muito úti