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);
    }
} 

Regex表达式输出不正确

您的编译器错误发生在那一行:

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++;
        }
    }