Найти последнее вхождение символа в строку

Можно также хотеть взглянуть на httplib2, с примеры . Я нахожу, что использование httplib2 более кратко, чем использование встроенных HTTP-модулей.

27
задан Michael Petrotta 30 April 2011 в 20:27
поделиться

2 ответа

Используйте StrRScan или AnsiStrRScan , оба в блоке SysUtils . Последний, несмотря на свое название, работает с символами Unicode в версиях Delphi, где string - UnicodeString. (Если вам все еще нужна «настоящая» версия Ansi, используйте модуль AnsiStrings .)

Эти функции ищут только один символ, тогда как LastDelimiter ищет любой из нескольких символов из данный список возможностей - представьте StrRScan как LastDelimiter, оптимизированный для односимвольного аргумента Delimiters.

11
ответ дан 28 November 2019 в 04:44
поделиться

И вот мой вклад в нахождение положения n-го вхождения подстроки в строке.

function GetPositionOfNthOccurence(sSubStr, sStr: string; iNth: integer): integer;
var
  sTempStr: string;
  iIteration: integer;
  iTempPos: integer;
  iTempResult: integer;
begin
  result := 0;

  // validate input parameters
  if ((iNth < 1) or (sSubStr = '') or (sStr = '')) then exit;

  // evaluate
  iIteration := 0;
  iTempResult := 0;
  sTempStr := sStr;
  while (iIteration < iNth) do
  begin
    iTempPos := Pos(sSubStr, sTempStr);
    if (iTempPos = 0) then exit;
    iTempResult := iTempResult + iTempPos;
    sTempStr := Copy(sStr, iTempResult + 1, Length(sStr) - iTempResult);
    inc(iIteration);
  end;
  result := iTempResult;
end;
1
ответ дан 28 November 2019 в 04:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: