如何在字符串中搜索模式?

时间:2011-09-23 07:23:42

标签: c#

我有一个包含以下输出的字符串

login;windows
db;sql
audit;failure

如何检查此字符串是否包含“audit; failure”一词?

我使用了以下代码但未成功:

 currLine = sr.ReadToEnd();
 string[] splited = Regex.Split(currLine, "~~~~~~~~~~~~~~");
 case1 = splited[0];
 string case1 = "";
 string pattern1 = "audit;failure";
 if (Regex.IsMatch(case1, pattern1)){
 console.writeline("success"!);
}

我必须搜索变量case1而不是字符串currLine 提前结束! :d

4 个答案:

答案 0 :(得分:3)

还要确保删除第string case1 = "";

if(case1.Contains("audit;failure"))
   console.writeline("success"!);

答案 1 :(得分:0)

我认为你只需要调整case1字符串........

 string case1 = "";
 currLine = sr.ReadToEnd();
 string[] splited = Regex.Split(currLine, "~~~~~~~~~~~~~~");
 case1 = splited[0];
 string pattern1 = "audit;failure";
 if (Regex.IsMatch(case1, pattern1)){
 console.writeline("success"!);
}

答案 2 :(得分:0)

只需使用String.Contains(),即可使用以下代码

if(sr.Contains("audit;failure")
{

}

答案 3 :(得分:0)

这样做的一种方法是先将它分成几行。

string[] lines = sr.split (new string[]{ Environment.LineBreak});
foreach(string line in lines){
    string[] parts = line.split(new char[] {';'});
    if(parts[0] == "audit")
        return parts[1];
}
return "not set";

这将返回“审核”背后的任何内容,并且很容易适应您需要的任何内容。如果没有审计线,将触发最终回报。