【更新说明】
StrBeforeW 用于解析特定字符串前的子串,比如字符串”Tommy and Jommy”,我们要取 ” and” 前的字符串,那么,用StrBeforeW就可以轻松的分割出来。
SplitByStrW 调用 StrBeforeW 将得到的子串加入到一个列表中,类似的函数SplitTokenW。这些函数提供的目的是简化字符串的分隔,而不必需使用复杂的正则表达式(正则表达式许多人理解起来费劲),一段示例代码:
procedure TForm1.Button1Click(Sender: TObject); var S: String; begin S := 'Jone or Tommy or Marry'; SplitByStrW(Memo1.Lines, S, ' or ', true); end;
同样的实现,用正则表达式:
var ARegex: TPerlRegex; begin ARegex := TPerlRegex.Create; ARegex.Subject := 'Jone or Tommy or Marry'; ARegex.RegEx := '\sor\s'; ARegex.Split(Memo1.Lines, MaxInt); FreeAndNil(ARegex); end;
通过循环100万次测试,对于这种不是特别复杂的字符串分隔,SplitByStrW 要快上约一倍左右(954ms vs 1734ms)。
【更新级别】
可选