2021-01-04 16:11:39 +00:00
|
|
|
package wildcard ;func _cc (_ff ,_bb []rune ,_gc int )int {for len (_bb )> 0{switch _bb [0]{default:if len (_ff )==0{return -1;};if _ff [0]!=_bb [0]{return _cc (_ff [1:],_bb ,_gc +1);};case '?':if len (_ff )==0{return -1;};case '*':if len (_ff )==0{return -1;};_ada :=_cc (_ff ,_bb [1:],_gc );if _ada !=-1{return _gc ;}else {_ada =_cc (_ff [1:],_bb ,_gc );if _ada !=-1{return _gc ;}else {return -1;};};};_ff =_ff [1:];_bb =_bb [1:];};return _gc ;};func Index (pattern ,name string )(_fg int ){if pattern ==""||pattern =="\u002a"{return 0;};_dc :=make ([]rune ,0,len (name ));_ae :=make ([]rune ,0,len (pattern ));for _ ,_deb :=range name {_dc =append (_dc ,_deb );};for _ ,_ed :=range pattern {_ae =append (_ae ,_ed );};return _cc (_dc ,_ae ,0);};func MatchSimple (pattern ,name string )bool {if pattern ==""{return name ==pattern ;};if pattern =="\u002a"{return true ;};_c :=make ([]rune ,0,len (name ));_b :=make ([]rune ,0,len (pattern ));for _ ,_ba :=range name {_c =append (_c ,_ba );};for _ ,_de :=range pattern {_b =append (_b ,_de );};_e :=true ;return _f (_c ,_b ,_e );};func Match (pattern ,name string )(_g bool ){if pattern ==""{return name ==pattern ;};if pattern =="\u002a"{return true ;};_ea :=make ([]rune ,0,len (name ));_ac :=make ([]rune ,0,len (pattern ));for _ ,_dd :=range name {_ea =append (_ea ,_dd );};for _ ,_gb :=range pattern {_ac =append (_ac ,_gb );};_be :=false ;return _f (_ea ,_ac ,_be );};func _f (_bdb ,_ag []rune ,_ad bool )bool {for len (_ag )> 0{switch _ag [0]{default:if len (_bdb )==0||_bdb [0]!=_ag [0]{return false ;};case '?':if len (_bdb )==0&&!_ad {return false ;};case '*':return _f (_bdb ,_ag [1:],_ad )||(len (_bdb )> 0&&_f (_bdb [1:],_ag ,_ad ));};_bdb =_bdb [1:];_ag =_ag [1:];};return len (_bdb )==0&&len (_ag )==0;};
|