Dot-Net
String.Split VS。正則表達式拆分?
如果我有一個帶有基本定界符的定界文本文件(
|例如),是否使用 aString或Regexsplit 會有所不同嗎?我會看到一個與另一個相比有任何性能提升嗎?
我假設
Regex.Split如果您有escaped不想拆分的分隔符(\|例如),您會想要使用。還有其他使用
Regex.Splitvs的理由String.Split嗎?
Regex.Split 功能更強大,但對於具有基本分隔符的排列(使用字元串中其他任何地方都不存在的字元),String.Split 函式更容易使用。
就性能而言,您必須創建一個測試並進行嘗試。但是,不要預先優化,除非您知道此功能將成為某些基本流程的瓶頸。
似乎對於簡單的場景
string.Split()會更好。我在 Benchmark .NET 中進行了測試在 .NetCore 2.2.6 上測試:
在 .Net 5.0.101 上測試:
注意:不在同一硬體上執行,因此 dotnet 版本之間的性能相對差異比絕對差異更重要。
考試:
public class RegexVsSplit { private readonly string data = "host:7000"; public RegexVsSplit() { } [Benchmark] public string[] RegexSplit() => Regex.Split(data, ":"); [Benchmark] public string[] Split() => data.Split(':'); }