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