新的正则表达式模块模糊函数误差值。蟒蛇

时间:2013-07-03 18:56:35

标签: python regex syntax-error fuzzy-search pypi-regex

我试用新的正则表达式模块的模糊函数。在这种情况下,我希望在那里找到所有字符串匹配< = 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

1 个答案:

答案 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)