2010-02-09 102 views
3

我想在C#中找到一种方法来替换字符串中第一个出现的正则表达式。用C#替换第一个逗号

所以,如果string = ",1,2,3,4,5"我想这样做

string = replacefirst(",","") 

地给出结果:

string = "1,2,3,4,5" 
+0

帖子标题显示“分号”,但您的示例使用逗号。 – 2010-02-09 10:19:21

+2

如果你有一个数组中的所有元素,你可以使用'String.Join()',这样你就不必进入这个后处理。 – Oliver 2010-02-09 11:14:51

+0

可能与您的案例无关,但如果您的源字符串是使用String.Join(listOfNumbers,“,”)创建的,那么结果中不会有额外的逗号(前导/​​尾随)。 – 2010-02-09 12:10:44

回答

11

您可以使用修剪为:

var myTrimmedString = myString.TrimStart(','); 
+0

谢谢伙伴!干杯 – 2010-02-09 10:25:31

0

更改正则表达式只匹配第一个分号。

1

如何:

if(yourString.Startswith(',')) 
     yourString = yourString.Substring(1); 
7
string s = "a;b;c;"; 
Regex rx = new Regex(";"); 
string s2 = rx.Replace(s, "", 1); //"ab;c;" 
+0

我喜欢这种方式完美地回答问题*标题*。 +1 – 2010-02-09 10:20:03

0
string MyString = ",1,2,3,4,6"; 
MessageBox.Show(MyString.Substring(1, MyString.Length-1)); 
+1

这等于:MyString.Substring(1) – Steven 2010-02-09 10:27:44

+0

它只有在逗号是第一个字符时才起作用。 – dada686 2010-02-09 10:40:48

5

在一个正则表达式, “^” 是指 “开始”

Regex.Replace(",1,2,3,4,5", "^,", "") 

给出1,2,3,4,5