如何在字符串中搜索模式

本文关键字:搜索 模式 字符串 | 更新日期: 2023-09-27 18:09:31

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

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

如何在字符串中搜索模式

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

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

我想你只需要调整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"!);
}

简单地使用String.Contains(),使用如下代码

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

一种方法是先将这一行分成几行。

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";

这将返回"audit"后面的内容,并且很容易调整以返回您需要的任何内容。如果没有审计行,将触发最后的返回。