Я хочу подсчитать, сколько раз строка возникает в другой строке в Pascal Script, как показано в приведенном ниже примере.Pascal Script Количество раз, когда строка встречается в другой строке
Я видел ответ Delphi: count number of times a string occurs in another string, но нет функции PosEx
в Pascal Script.
MyString := 'Hello World!, Hello World!, Hello World!, Hello World!';
Если подсчитать количество раз Hello
или World
происходит здесь, результат должен быть 4.
Если подсчитать количество раз ,
(запятой) происходит здесь, результат должен быть 3.
UPDATE
следующая функция работает, но он копирует данную строку снова к новой переменной, и удаляет части строки s, поэтому он работает медленно.
function OccurrencesOfSubString(S, SubStr: String): Integer;
var
DSStr: String;
begin
if Pos(SubStr, S) = 0 then
Exit
else
DSStr := S;
Repeat
if Pos(SubStr, S) <> 0 then
Inc(Result);
Delete(DSStr, Pos(SubStr, DSStr), Length(Copy(DSStr, Pos(SubStr, DSStr), Length(SubStr))));
Until Pos(SubStr, DSStr) = 0;
end;
Это не служба написания кода. Вы приложили все усилия, чтобы сделать это самостоятельно? Вы можете сделать это без PosEx; это было сделано за десятилетия до того, как PosEx когда-либо существовал. –
Да, но я не смог опубликовать свой код, потому что он не работает, как я ожидаю. – GTAVLover
Затем отправьте свой код, который не работает, и * задайте конкретный вопрос * об этом коде. Опять же, это не служба написания кода, где вы публикуете свои требования и язык выбора, а кто-то издает код для вас. –