Delphi: count number of times a string occurs in another string

Jonas picture Jonas · Mar 10, 2011 · Viewed 21.3k times · Source

I'm using Delphi 2007 and wonder if there is a simple way of counting the number of times a string occurs in another string. Any builtin function I can use?

Examples:

  • "How" occurs once in the string "How are you?"
  • "do" occurs twice in the string "How do you do?"

Answer

Andreas Rejbrand picture Andreas Rejbrand · Mar 10, 2011
function Occurrences(const Substring, Text: string): integer;
var
  offset: integer;
begin
  result := 0;
  offset := PosEx(Substring, Text, 1);
  while offset <> 0 do
  begin
    inc(result);
    offset := PosEx(Substring, Text, offset + length(Substring));
  end;
end;