J'avais l'habitude d'utiliser la bibliothèque HYPERSTR pour la routine de traitement de chaîne. Maintenant, j'utilise Delphi plus récent. J'ai besoin de rechercher un motif dans une chaîne, par exemple l'ancienne fonction est function IsMatchEx(const Source, Search:AnsiString; var Start:integer) : Integer;
. En fait, je n'ai pas besoin de la valeur du résultat, je veux juste savoir si le motif correspond à la chaîne ou non.Rechercher un motif dans une chaîne en utilisant un caractère générique dans Delphi?
Mon ancien code (retourne TRUE en cas):
var
StartPos: integer;
FoundPos: integer;
begin
StartPos := 1;
FoundPos := IsMatchEx('abcdef', 'abcd?f', StartPos);
if FoundPos > 0 then
showmessage('match');
end;
Je vois que Delphi XE a TRegEx mais je stil ne comprennent pas l'utiliser.
Ce code ne retourne pas TRUE:
if TRegEx.IsMatch('abcdef', 'abcd?f') then
showmessage('match');
J'ai aussi eu même résultat lors de l'utilisation MatchesMask
.
Merci.
utiliser pensez que vous. ' pour correspondre à un seul caractère. – MGH
Vraiment? MatchesMask * devrait * avoir travaillé. Êtes-vous sûr que votre test était valide? –
@Rob, je veux dire MatchesMask ne fonctionne pas dans mon cas réel. En utilisant le point, mon problème a résolu. Désolé pour la réponse tardive parce que je dois corriger quelques codes afin que je puisse essayer la réponse de l'HGM. – user