在正则表达式匹配后将变量更改回原始值

时间:2010-04-30 01:45:46

标签: c# regex

我刚刚“完成”扩展我的Palindrome测试仪,用C#制作。为了允许短语,我为所有非字母数字字符添加了一个简单的正则表达式匹配。在该计划结束时,它表示“是(不是)回文。”但现在使用正则表达式打印它的无空格/标点符号版本。

我希望能够打印原始用户输入。我该怎么做?

这是我的计划:http://gist.github.com/384565

1 个答案:

答案 0 :(得分:1)

  1. 调用ToLower()本身不会做任何事情。字符串是不可变的,这意味着修改字符串实例是不可能的。 ToLower()函数返回一个新字符串,因此您必须将该值存储在变量中(相同或新的变量)。
  2. 要返回传递给函数的值,只需创建一个新的字符串变量。
  3. 像这样:

    public static string Tester(string input)
    {
        string pattern = "\\W";
    
        string data = Regex.Replace(input.ToLower(), pattern, String.Empty);
    
        if (data == StringHelper.ReverseString(data))
        {
            Console.Write(input); Console.Write(" is a Palindrome.");
        }
        else
        {
            Console.Write(input); Console.Write(" isn't a Palindrome.");
        }
    
        return input;
    }