2013-07-03 2 views
1

Импробовать нечеткую функцию нового модуля регулярных выражений. в этом случае, я хочу, чтобы найти соответствие для всех строк с < = 1 ошибок, но у меня возникают проблемы с егоЗначение ошибки ошибки функции нечеткой функции регулярного выражения. Python

import regex 

statement = 'eol the dark elf' 
test_1 = 'the dark' 
test_2 = 'the darc' 
test_3 = 'the black' 

print regex.search('{}'.format(test_1),statement).group(0) #works 

>>> 'the dark' 

print regex.search('{}'.format(test_1){e<=1},statement).group(0) 

>>> print regex.search('{}'.format(test_1){e<=1},statement).group(0) #doesn't work 
             ^
SyntaxError: invalid syntax 

я также попытался

print regex.search('(?:drk){e<=1}',statement).group(0) #works 
>>> 'dark' 

, но это. , ,

print regex.search(('(?:{}){e<=1}'.format(test_1)),statement).group(0) #doesn't work 
>>> SyntaxError: invalid syntax 
+1

после 'serach' вам нужно (1)). group (0) ' – TobiMarg

+0

, где вы помещаете строку –

ответ

1

В своем первом фрагменте кода, вы забыли поставить {e<=1} в строке. В вашем последнем фрагменте, я думаю, проблема в том, что format пытается разобраться с самим {e<=1}. Так как вы используете конкатенацию:

print regex.search(test_1 + '{e<=1}', statement).group(0) 

или избежать буквального скобки, по их удвоению:

print regex.search('{}{{e<=1}}'.format(test_1), statement).group(0) 

Это может затем быть легко расширена до

print regex.search('{}{{e<={}}}'.format(test_1, num_of_errors), statement).group(0) 
+0

Я немного запутался в том, как сделать номер ошибки - переменная. скажем, ошибка = 2 ... она не работает, когда я пытаюсь «{e <= {}}». format (ошибка) –

+0

@ draconisthe0ry Я только что понял, буквальные фигурные скобки можно избежать, удвоив их. Я отредактирую ответ –

Смежные вопросы