Regex表达式输出不正确
本文关键字:不正确 输出 表达式 Regex | 更新日期: 2023-09-27 18:29:09
嘿,伙计们,我正试图在C#中创建一个正则表达式函数,它将在句子中搜索所有以"结尾的单词;es";。我正在尝试以的格式输出
Word1 = bes
Word2 = mes
Word3 = ces
等等。问题是;errorCS0136";在编译时。我尝试使用Console.WriteLine()
,并在循环的每次迭代中增加一个计数器变量,但这不起作用。这是我收到的错误的副本。非常感谢。
Task1.cs(66,52):错误CS1026:意外符号",",应为")"
Task1.cs(66,55):error CS0136:不能在此作用域中声明名为"match"的局部变量,因为它将赋予"match(匹配)"不同的含义,而"match已在"parent或current"作用域中用于表示其他
Task1.cs(66,59):错误CS1026:意外符号")",应为")"
编译失败:3个错误,0个警告
下面是我的源代码。
public void numPatternSearch(){
string input3;
string pattern = @"'b'w+es'b";
//Regex regex = new Regex("[*]");
Console.WriteLine("Enter string to search: ");
input3 = Console.ReadLine();
//input3 = string.Join("", input3.Where(char.IsDigit).ToArray());
//input3 = Regex.Match(input3, @"'d+").Value;
//string[] substrings = regex.Split(input3);
foreach (Match match in Regex.Matches(input3, pattern)){
int count = 1;
string[] substrings = "Number"+count+" = '{0}'", match;
count++;
Console.WriteLine(substrings);
}
//Console.WriteLine(input3);
}
}
您的编译器错误发生在那一行:
string[] substrings = "Number"+count+" = '{0}'", match;
这不是有效的c#。如果你想要一个结果字符串的列表,你可以试试这个:
List<string> substrings = new List<string>();
int count = 1;
foreach (Match match in Regex.Matches(input3, pattern))
{
string substring = string.Format("Number{0} = '{1}'", count, match);
count++;
Console.WriteLine(substring);
substrings.Add(substring);
}
现在可以使用substrings
进行进一步的操作。您可以使用将List<string>
转换为阵列
string[] subStringArray = substrings.ToArray();
请注意,我在循环外声明了count
。否则,您将始终使用1
作为计数!
您遇到了一个编译错误。您的代码从未运行过。
错误是说它在66线上,我想是这个:
string[] substrings = "Number"+count+" = '{0}'", match;
这不是有效的C#。我不太确定你想要什么。数组可以这样初始化:
string[] substrings = ["Number"+countString+" = '{0}'", otherString]; // where otherString needs to be a string
看起来更像是您正在尝试调用Format。
源代码的修改版本:
public void numPatternSearch()
{
string input3;
string pattern = @"'b'w+es'b";
Console.WriteLine("Enter string to search: ");
input3 = Console.ReadLine();
string[] substrings = new string[100];
int count = 1;
foreach (Match match in Regex.Matches(input3, pattern))
{
substrings[count - 1] = string.Format("Number" + count + " = {0}", match);
Console.WriteLine(substrings[count - 1]);
count++;
}
}