2013-07-03 44 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

只有一個'('。應該是這樣的:'print regex.search('(?:{}){e <= 1}'.format(test_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) 

這可以很容易地後`serach`你需要擴展到

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

我有點困惑如何使錯誤編號一個變量。讓我們說錯誤= 2 ...當我嘗試'{e <= {}}'時它不工作。格式(錯誤) –

+0

@ draconisthe0ry我剛剛意識到,字面大括號可以通過加倍來逃脫。我會編輯答案 –