C#字符串替换问题

时间:2010-01-11 16:57:46

标签: c# string

快速提问。我从目录列表中填充了一个列表框。每个文件都包含其名称和〜#####。我正在尝试将它全部读入一个字符串并用什么都替换〜####。 ####可以是长度为1-6的数字,可以是0-9之间的任何数字。这是我正在使用的代码:

string listItem = (listBox1.SelectedItem.ToString().Replace("~*",""));

示例:

Here223~123  --->  Here
Here224~2321 ----> Here

我无法替换任何数字,因为我需要〜

之前的数字

5 个答案:

答案 0 :(得分:12)

尝试

listItem.Split("~")[0]

这应该会给你一个字符串数组中的第一个字符串,这样你就丢失了tilda和尾随字符串。

答案 1 :(得分:6)

string listItem = Regex.Replace(listBox1.SelectedItem.ToString(), "~[0-9]{1,6}", string.Empty);

应该做的伎俩(不记得你是否必须逃避〜)!

答案 2 :(得分:4)

怎么样:

string listItem = 
      listBox1.SelectedItem.ToString().Substring(0, 
           listBox1.SelectedItem.ToString().IndexOf("~"));

答案 3 :(得分:4)

您最好使用Substring(int startIndex,int length)方法:

string listItem = listBox1.SelectedItem.toString();
listItem = listitem.SubString(0, listItem.IndexOf("~"));

答案 4 :(得分:1)

重点是string.replace不做正则表达式

所以要么拆分为“〜”,要么使用正则表达式