如何使用正则表达式删除多个首字符?

时间:2018-11-24 13:34:06

标签: c# regex

我有字符串string A = "... :-ggw..-:p";

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

我的输出是ggw..p

我想要的是ggw..-:p

谢谢

2 个答案:

答案 0 :(得分:1)

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

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

请参见regex demo

详细信息

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

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

答案 1 :(得分:1)

如果只想从字符串开头修剪特定字符,则不需要正则表达式。 System.String.TrimStart()将完成这项工作:

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

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