簡體   English   中英

計算 c# 中字符串中具有特殊字符的字符串

[英]counting a string with special characters in a string in c#

我想在另一個字符串(日志文件)中計算一個字符串(搜索詞)。 使用方法拆分字符串並在之后搜索數組對我來說效率太低,因為日志文件非常大。

在網上我發現了以下可能性,到目前為止效果很好。 然而,

count = Regex.Matches(_editor.Text, txtLookFor.Text, RegexOptions.IgnoreCase).Count;

我現在在那里遇到另一個問題,當我以“Nachricht erhalten(”)格式計算字符串時出現以下錯誤。

錯誤信息:

System.ArgumentException:“Nachricht erhalten(”分析 - 不夠) - 字符。

您需要轉義(符號,因為它在正則表達式中有一個特殊的function

var test = Regex.Matches("Nachricht erhalten (3)", @"Nachricht erhalten \(", RegexOptions.IgnoreCase).Count;

如果您在用戶不熟悉正則表達式的情況下通過用戶輸入來執行此操作,您可能更容易在while循環中使用IndexOf ,您可以繼續使用在最后一個循環中找到的新索引。 這在性能上也可能比正則表達式好一點。 例子:

var test = "This is a test";
var searchFor = "is";
var count = 0;
var index = test.IndexOf(searchFor, 0);
while (index != -1)
{
    ++count;
    index = test.IndexOf(searchFor, index + searchFor.Length);
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM