Объединение смежных совпадений SequenceMatcher - PullRequest
1 голос
/ 30 октября 2019

Существует ли опция или метод для difflib.SequenceMatcher для объединения смежных совпадений?

Рассмотрим эту пару:

str_a = "Attempt to invoke virtual method XXX.XXX on a null object reference"

str_b = "Unable to start activity ComponentInfo{YYY/YYY.YYYActivity}: java.lang.NullPointerException: Attempt to invoke interface method 'void ZZZ.ZZZ(ZZZ.ZZZ.WWW.product.BaseActivity)' on a null object reference"

Извините неминимальные примеры, но возвращенные совпадения кажутся чувствительными кдаже небольшие удаления.

[((i,j,n),str_a[i:i+n],str_b[j:j+n]) for i,j,n in difflib.SequenceMatcher(None,str_a,str_b).get_matching_blocks()]

Тогда

[((0, 50, 1), 'A', 'A'),
 ((1, 94, 17), 'ttempt to invoke ', 'ttempt to invoke '),
 ((22, 158, 1), 'u', 'u'),
 ((40, 176, 27), ' on a null object reference', ' on a null object reference'),
 ((67, 203, 0), '', '')]

Но почему 'A' и 'ttempt to invote' возвращаются как 2 отдельных совпадения, так как они примыкают? Есть ли способ присоединиться к ним внутри?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...