C# 如何使用正则表达式删除多个第一个字符?

C# 如何使用正则表达式删除多个第一个字符?,c#,regex,C#,Regex,我有stringstring A=“…:-ggw..-:p” 使用正则表达式:string B=regex.Replace(A,@“^\.+\:|-|“,”).Trim() 我的输出是ggw..p 我想要的是ggw..-:p 谢谢您可以在符号和空白速记字符类中使用字符类: string B = Regex.Replace(A, @"^[.:\s-]+", ""); 见 详细信息 ^-字符串的开头 [.:\s-]+-字符类中定义的一个或多个字符 请注意,在[…]中不需要转义。-不必转义,因为

我有string
string A=“…:-ggw..-:p”

使用正则表达式:
string B=regex.Replace(A,@“^\.+\:|-|“,”).Trim()

我的输出是
ggw..p

我想要的是
ggw..-:p


谢谢

您可以在符号和空白速记字符类中使用字符类:

string B = Regex.Replace(A, @"^[.:\s-]+", "");

详细信息

  • ^
    -字符串的开头
  • [.:\s-]+
    -字符类中定义的一个或多个字符

请注意,在
[…]
中不需要转义
-
不必转义,因为它位于字符类的末尾。

如果只想从字符串开头修剪特定字符,则不需要正则表达式
System.String.TrimStart()
将执行以下操作:

var source = "... :-ggw..-:p";
var charsToTrim = " .:-".ToCharArray();
var result = source.TrimStart(charsToTrim);
Console.WriteLine(result);

// Result is 'ggw..-:p'

嗯\s仍然必须在character类中,或者
-
的任何左边都会阻止这些字符被替换。是的,我刚才也理解了这一点。并通过手机登录以删除该句子。