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 に答える