0

我需要一个正则表达式或某种方法来删除顺序引号。

示例:“我在报价中”到“我在报价中”

或 ""我在引号中"" 到 "我在引号中"。

我对正则表达式了解不多。我也尝试使用 replace 方法,但在转义内容时遇到了麻烦。

我一直在尝试这个:

static void Main(string[] args)
        {
            string pattern = @"^\s*""?|""?\s*$";
            string input = Console.ReadLine();

            Console.WriteLine(Regex.Replace(input, pattern, string.Empty));
            Console.ReadKey();
        }
4

2 回答 2

0

您可以先将它们Split放在一起:"Join

var result = string.Format("\"{0}\"", string.Join("", x.Split('"')));

例如,您的输入:

""I am in" a quote""

使用Splitwith ",您将拥有一个不再包含的字符串列表"。然后当您使用Joinwith时"",这意味着您通过空字符串而不是 将它们再次连接在一起"

第一个结果没有"第一个和最后一个,用第一个和最后一个string.Format相加"得到最终结果。

另一种更简单的方法,它使用ReplaceandPadLeftPadRight

 string output = input.Replace("\"", string.Empty)
                      .PadLeft(1, '"')
                      .PadRight(1, '"');
于 2013-08-04T06:19:13.470 回答
-2

嘿,我在我工作的地方经常使用正则表达式,我认为这个正则表达式可以完成这项工作。

 .*?(")".*?

之后你可以拉它或更换它。

于 2013-08-04T06:20:53.073 回答