1

我正在尝试新的正则表达式模块的模糊功能。在这种情况下,我希望找到所有具有 <= 1 错误的字符串的匹配项,但我遇到了麻烦

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
4

1 回答 1

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)
于 2013-07-03T19:28:13.407 回答