-1
我有3条规则,这是字符串'483 ??','48310 * ','48 *',我有一个源字符串'483102334'必须与上述规则匹配才能找到匹配最近的规则。在这个例子中,最接近的匹配规则是'48310 *',因为它匹配我的源字符串中的大部分数字。我想在PL/SQL中实现这一点。请帮忙!如何做一个字符串与多个相似的字符串,以找到最接近的匹配
我有3条规则,这是字符串'483 ??','48310 * ','48 *',我有一个源字符串'483102334'必须与上述规则匹配才能找到匹配最近的规则。在这个例子中,最接近的匹配规则是'48310 *',因为它匹配我的源字符串中的大部分数字。我想在PL/SQL中实现这一点。请帮忙!如何做一个字符串与多个相似的字符串,以找到最接近的匹配
类似这样的内容适用于您提供的示例数据。如果你想 '?'与'*'的处理方式不同,但是,您必须提供更多的细节。
SQL> ed
Wrote file afiedt.buf
1 with x as (
2 select '483??' pattern from dual union all
3 select '48310' pattern from dual union all
4 select '48*' pattern from dual
5 )
6 select pattern
7 from (
8 select pattern,
9 rank() over (order by utl_match.edit_distance(pattern, '483102334')) rnk
10 from x)
11* where rnk = 1
SQL>/
PATTE
-----
48310
感谢您的回答。 :) – Arcs 2012-03-19 12:50:04
@ akash88我想用'UTL_MATCH.edit_distance(rule_name,source_string)'来满足我的要求。任何类型的建议将不胜感激! – Arcs 2012-03-19 07:07:23