我曾經使用HYPERSTR庫進行字符串處理例程。現在我使用更新的Delphi。我需要在一個字符串中搜索一個模式,例如舊功能是function IsMatchEx(const Source, Search:AnsiString; var Start:integer) : Integer;
。其實我不需要結果值,我只是想知道模式是否與字符串匹配。在Delphi中使用通配符搜索字符串中的模式?
我的舊代碼(返回TRUE):
var
StartPos: integer;
FoundPos: integer;
begin
StartPos := 1;
FoundPos := IsMatchEx('abcdef', 'abcd?f', StartPos);
if FoundPos > 0 then
showmessage('match');
end;
我看到德爾福XE擁有TRegEx但我還是老樣子不明白使用它。
這些代碼不會返回TRUE:
if TRegEx.IsMatch('abcdef', 'abcd?f') then
showmessage('match');
我使用MatchesMask
時,也得到了同樣的結果。
謝謝。
想想你用匹配單個字符。 – MGH 2011-05-13 09:14:19
真的嗎? MatchesMask *應該*已經工作。你確定你的測試是有效的嗎? – 2011-05-13 14:10:53
@Rob,我的意思是MatchesMask在我的真實案例中不起作用。通過使用點,我的問題已解決。對不起,遲交回復,因爲我不得不修復一些代碼,所以我可以嘗試從MGH的答案。 – user 2011-05-17 11:59:51