C# 如何使用正则表达式从字符串开头删除引号?

C# 如何使用正则表达式从字符串开头删除引号?,c#,regex,C#,Regex,我有一些字符串有时会这样开头: "[1][v5r,vi][uk] [1][v5r,vi][uk] 其他类似的时间: "[1][v5r,vi][uk] [1][v5r,vi][uk] 如何使用Regex删除出现在字符串开头的?我知道我需要这样做,但不确定如何设置: regex = new Regex(@"(\n )?\[ant=[^\]]*\]"); regex.Replace(item.JmdictMeaning, "")); 给你 string input =@" ""[1][v5

我有一些字符串有时会这样开头:

"[1][v5r,vi][uk]
[1][v5r,vi][uk]
其他类似的时间:

"[1][v5r,vi][uk]
[1][v5r,vi][uk]
如何使用Regex删除出现在字符串开头的?我知道我需要这样做,但不确定如何设置:

regex = new Regex(@"(\n  )?\[ant=[^\]]*\]");
regex.Replace(item.JmdictMeaning, ""));
给你

string input =@" ""[1][v5r,vi][uk]";
string pattern = @"^\s*""?|""?\s*$";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, "");
Console.WriteLine(result);
你可以在这里找到我的例子

string input =@" ""[1][v5r,vi][uk]";
string pattern = @"^\s*""?|""?\s*$";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, "");
Console.WriteLine(result);

如果字符串总是以[1]开头,您可以在

中找到我的示例:

如果您只想从第一个开始[:


比正则表达式更简单,这对于这个问题来说可能有些过分。

如果字符串总是以[1]开头:

如果您只想从第一个开始[:

比正则表达式更简单,这对于这个问题来说可能有些过分。

可以使用indexOf和Substring来完成

它可以使用indexOf和Substring来完成

使用TrimStart删除此字符(如果存在)

string str = "\"a[1][v5r,vi][uk]";
str= str.TrimStart('\"');
使用TrimStart删除此字符(如果存在)

string str = "\"a[1][v5r,vi][uk]";
str= str.TrimStart('\"');

string.StartsWith就可以了

string str = "\"[1][v5r,vi][uk]";
if(str.StartsWith('"'))
    str = str.Substring(1);

string.StartsWith就可以了

string str = "\"[1][v5r,vi][uk]";
if(str.StartsWith('"'))
    str = str.Substring(1);

你的前两个字符串是相同的如果你只想从一个字符串的开头删除一个前导,那么使用子字符串就更容易了。你的正则表达式要比这个复杂得多,这意味着你没有告诉我们有额外的要求。它们是什么?看看你是否需要。这会简单得多。我想删除所有的要求在[1]@Alan2之前出现的ng,所以删除所有内容-而不仅仅是引号?字符串是否总是以[1]开头?您的前两个字符串是相同的如果您只想从字符串的开头删除一个前导,那么使用子字符串就更容易了。您的正则表达式要比这复杂得多,这意味着您没有告诉我们有额外的要求。它们是什么?看看是否满足您的需要。这会简单得多。我想删除所有要求在[1]@Alan2之前出现的字符串,请删除所有内容,而不仅仅是引号?字符串是否总是以[1]开头?您好,您可以将[1]作为我需要的每个字符串的一部分包含在模式中,以该字符串开头。@Alan2模式与输入[1]不同是包含在inputHanks中的,我注意到代码工作得很好,但我只是想了解您使用的模式,注意到它没有包含[1],所以有点让我困惑。您好,您可以将[1]包含到您的模式中,作为我需要的每个字符串的一部分开始。@Alan2模式与输入[1]不同是包含在inputHanks中的,我注意到代码工作得很好,但我只是试图理解您使用的模式,并注意到它不包含[a],所以我有点困惑。