Вопрос замены строки в C # - PullRequest
5 голосов
/ 11 января 2010

Быстрый вопрос. У меня есть список, который заполняется из списка каталогов. Каждый файл содержит свое имя и ~ #####. Я пытаюсь прочитать все это в строку и заменить ~ #### ничем. #### может быть цифрами от 1 до 6 и может быть от 0 до 9. Вот код, который я использую:

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

Пример:

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

Я не могу заменить любое число, потому что мне нужны числа до ~

Ответы [ 5 ]

12 голосов
/ 11 января 2010

Попробуйте

listItem.Split("~")[0]

Это должно дать вам первую строку в массиве строк, таким образом вы потеряли тильду и завершающую строку после этого.

6 голосов
/ 11 января 2010

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

должен сделать трюк (не помню, если вам нужно сбежать ~ хотя!)

4 голосов
/ 11 января 2010

Возможно, вам лучше использовать метод Substring (int startIndex, int lenght):

string listItem = listBox1.SelectedItem.toString();
listItem = listitem.SubString(0, listItem.IndexOf("~"));
4 голосов
/ 11 января 2010

А как же:

string listItem = 
      listBox1.SelectedItem.ToString().Substring(0, 
           listBox1.SelectedItem.ToString().IndexOf("~"));
1 голос
/ 11 января 2010

Дело в том, что string.replace не делает регулярных выражений

, так что или разделите на "~", или используйте регулярное выражение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...