求一个*/?模糊匹配算法,在线等,能用的马上给分。
就像Windows搜索文件那样的匹配算法“*”、“?”。
Delphi版的才给分,文字处理的东西调试和翻译都太麻烦。
最好是成熟的算法。
谢谢了,在线等,能用的马上给分。
[解决办法]
用TRegExp类.正则表达式.
非常成熟.有例子:
http://www.2ccc.com/article.asp?articleid=1412
[解决办法]
用 正则表达式 最简单,资料你搜一下CSDN上面的帖子就OK了。
[解决办法]
function StringMatch(
mSource: string;
mPattern: string
): Boolean;
var
pSource: array[0..255] of Char;
pPattern: array[0..255] of Char;
function MatchPattern(mElement, mPattern: PChar): Boolean;
begin
if 0 = StrComp(mPattern, '* ') then
Result := True
else if (mElement^ = #0) and (mPattern^ <> #0) then
Result := False
else if mElement^ = #0 then
Result := True
else
begin
case mPattern^ of
'* ':
if MatchPattern(mElement, @mPattern[1]) then
Result := True
else
Result := MatchPattern(@mElement[1], mPattern);
'? ': Result := MatchPattern(@mElement[1], @mPattern[1]);
else
if mElement^ = mPattern^ then
Result := MatchPattern(@mElement[1], @mPattern[1])
else
Result := False;
end;
end;
end;
begin
StrPCopy(pSource, mSource);
StrPCopy(pPattern, mPattern);
Result := MatchPattern(pSource, pPattern);
end; { StringMatch }
[解决办法]
学习!