Delphi: 使用通配符进行字符串比较的函数MatchesMask

uses Masks
procedure TTestMatchesMask.TestMatchesMaskFunc;
var
S: string;
begin
S := 'http://www.zhangsk.cn';
Check(MatchesMask(S,'http://*'), 'Error at: );
Check(MatchesMask(s,'HTTP://*.cn'), 'Error at: );
Check(MatchesMask(s,'*.cn'), 'Error at: );
Check(MatchesMask(s,'*.zhangsk.cn'), 'Error at: );
Check(MatchesMask(s,'http://www.*.cn'), 'Error at: *.zhangsk.cn');
Check(MatchesMask(s,'http://www.???????.cn'), 'Error at: );
Check(MatchesMask(s,'http://www.zhangsk.??'), 'Error at: );
//总结: 类似dos下的通配符, 不区分大小写.

Check(MatchesMask('005x', '[0-9]?[5-9][a-z]'), 'Error at: [1-9]?[5-9][a-z]');
CheckFalse(MatchesMask('003x', '[0-9]?[5-9][a-z]'), 'Error at: False [1-9]?[5-9][a-z]');
//总结: 可以使用类型子界的处理方法.

s := '乾坤塾';
Check(MatchesMask(s,'乾*'), 'Error at: 乾*');
{$IFDEF UNICODE}
Check(MatchesMask(s,'??塾'), 'Error at: ??塾');
{$ELSE}
Check(MatchesMask(s,'????塾'), 'Error at: ????塾');
{$ENDIF}
//总结: 一个汉字在Unicode版本(Delphi2009及以后版本)中当作一个字符处理,
// 在ASCII版本(Delphi2009之前版本)中当作两个字符处理.

end;

 

posted @ 2012-03-19 22:03  treemon  阅读(2524)  评论(0编辑  收藏  举报