字串模糊匹配 根據萬用字元

2021-10-07 22:31:07 字數 858 閱讀 6537

在我們程式設計過程中,經常需要遇到字串和指定的模板匹配,需要返回是否匹配字串模板。

其中符號:%匹配任意多個位元組,?匹配單個字元

模板形式舉例如下:

1、  010%、010????????,用於判斷**號碼是否是010開頭。

2、 %民主%, 用於判斷文字中是否含有敏感詞。

3、%銀行%信用卡% , 用於判斷文字中是否含有特殊的語義。

我們需要用文字:   "中國銀行提供信用卡服務"  匹配 "%銀行%信用卡%"

其中引數:skey 代表需要匹配的文字,例如:  中國銀行提供信用卡服務   

srule 代表文字要匹配的模板,例如:  %銀行%信用卡%  

返回值:true,代表文字匹配模板,false,代表文字不匹配模板。

呼叫舉例: 

bool   bmatchflag;

bmatchflag = fuzzymatch("中國銀行提供信用卡服務", "%銀行%信用卡%");

bool fuzzymatch(char* skey, char* srule)

else if(nkeylen == 1)

srule++;

}return true;

}}  

if(srule[0] == '?')

}else if(nkeylen == 1)

else 

srule++;

}return true;}}

}if(srule[0] == '%')

}stemp++;

tmplen = strlen(stemp);

}}        

else

}return false;

}

萬用字元匹配字串

問題 實現支援?和 兩個萬用字元的字串匹配函式。implement wildcard pattern matching with support for and matches any single character.matches any sequence of characters inclu...

關於字串模糊匹配

一種比kmp和bm 更高效的匹配演算法 如果想看原英文介紹,看下面分割線後的 適用於 模式串較短的情況,最壞時間複雜性為o n m 不過一般沒這麼壞 sunday演算法其實思想跟bm演算法很相似,只不過sunday演算法是從前往後匹配,在匹配失敗時關注的是文字串中參加匹配的最末位字元的下一位字元。如...

萬用字元的字串匹配演算法

1.簡述 題目描述 str1中可能包含的字元 除了 和 以外的任意字元。str2中可能包含的字元 任意字元。其中,表示匹配任意乙個字元,表示匹配任意字元0或者多次。給出這樣兩個字串,判斷str2是否是str1的子串,如果是輸出第乙個匹配到的子串,如果不是,輸出 不是子串 2.分析 對於 的處理,只要...