C#正则表达式:删除前导和尾随双引号(")

Pet*_*vin 10 c# regex

如果我有一个像下面的字符串...什么是正则表达式删除(可选)前导和尾随双引号?对于额外的功劳,它还可以删除引号之外的任何可选空格:

string input = "\"quoted string\""   -> quoted string
string inputWithWhiteSpace = "  \"quoted string\"    "  => quoted string
Run Code Online (Sandbox Code Playgroud)

(对于使用Regex.Replace的C#)

Luk*_*keH 32

用它来做Regex.Replace这件事太过分了.请Trim改用.

string output = input.Trim(' ', '\t', '\n', '\v', '\f', '\r', '"');
Run Code Online (Sandbox Code Playgroud)

如果你只是想去掉空格这是外面的引号,保留任何这里面:

string output = input.Trim().Trim('"');
Run Code Online (Sandbox Code Playgroud)

  • 我知道这不太常见,但如果您的内弦以其中任何一个开头或结尾,您也会修剪它们。例如, `Size 8"` 或 `"Size 8"""` (如果转义双引号)将最终变为 `Size 8`。 (2认同)

Dan*_*ner 9

除了使用正则表达式之外,您还可以使用String.Trim()- 更容易阅读,理解和维护.

var result = input.Trim('"', ' ', '\t');
Run Code Online (Sandbox Code Playgroud)


Ama*_*osh 3

替换^\s*"?|"?\s*$为空字符串。

在 C# 中,正则表达式为:

string input = "  \"quoted string\"    "l
string pattern = @"^\s*""?|""?\s*$";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, "");
Console.WriteLine(result);
Run Code Online (Sandbox Code Playgroud)