Делать подобное совпадение в слюнях, а не точно, проверяя расстояние Левенштейна - PullRequest
0 голосов
/ 14 января 2019

Мой пример использования: при сопоставлении ниже в слюнах

Person(name=="A.P.J abdul kalam")

Это совпадение должно работать для всех следующих данных

 1. A.P.J Abdul Kalam
 2. A.P.J. Abdul Kalam
 3. APJ Abdul Kalam

Может ли что-нибудь подобное быть сделано в слюнях ??

1 Ответ

0 голосов
/ 14 января 2019

Пока вы можете выразить свое требование в виде регулярного выражения, это можно сделать с помощью оператора match .

Правило должно выглядеть примерно так:

rule 'Match APJ Abdul Kalam' 
  Person(name matches "A(\\.)?P(\\.)?J(\\.)? Abdul Kalam")
then
  //...
end

Если ваша проблема не может быть решена с помощью регулярных выражений, то вы можете использовать реализацию алгоритма расстояния Левенштейна в служебном классе, а затем сделать что-то вроде этого:

rule 'Match name' 
  Person(Utils.levenshtein(name, "APJ Abdul Kalam"))
then
  //...
end

Надеюсь, это поможет,

...