2015-06-12 3 views
-2

У меня есть эта строкаC# Обрезка Charaters от конца строки

«1.3.1 \ tProduction и Анализ продаж:.»

Я хочу, чтобы урезать число и экранирующие последовательности с самого начала и конец строки.

Выход Должно быть:

"Производство и анализ продаж:"

Мой код:

Char[] trimArray = new Char[] {'0','1','2','3','4','5','6','7','8','9','.',',',':','\\','/'}; 
     String test = "1.3.1.\tProduction and Sales Analysis:"; 
     test = test.TrimEnd(trimArray); 

, но проблема в том, когда строка как 23232-232123-ASD-323 приходит он также удаляет цифру

Я хочу, чтобы удалить ненужные символы из начала и конца строки Но Хочет сохранить строку как 23232-232123-ASD-323 или мобильные номера

спасибо.

+2

Я ненавижу это говорить, но использовать 'Regular Expression' :) –

+0

как я могу использовать регулярное выражение? я понятия не имею об этом – Nomang

+1

Я не знаю, как 'TrimEnd' может удалить символы в начале строки. – xanatos

ответ

0

Есть ли всегда '\ t' посередине? Вы можете попытаться разделить на '\ t' и обрезать конец.

Split(new char[]{'\t'}); 

Если двоеточие всегда в конце, что вы хотите, чтобы вы можете разделить снова;)

0

Если есть что-то общее отделяя плохое число и хорошие номера, как говорят, «T», то как насчет поиска индекса общей буквы/символа, а затем создания подстроки всего после. Например:

String test = "1.3.1.\tProduction and Sales Analysis:"; 

index = test.LastIndexOfAny(new char[] { 't' }); 
test = test.Substring(index +1); 

Это должно дать вам «Анализ производства и продаж:». Вы могли бы сделать то же самое для «:» за исключением того, вы хотите все перед ним, как так

int index = test.LastIndexOfAny(new char[] { ':' }); 
test = test.Substring(0, index); 
0

С регулярным выражением:

using System.Text.RegularExpressions; 

string input = "1.3.1.\tProduction and Sales Analysis:"; 
string rgx = @"(?:[0-9.]+)*(?:\\[a-zA-Z])*([\w\s\.\:-_]+)(?:\\[a-zA-Z])*"; 
string result = Regex.Match(input, rgx).Groups[1].Value.TrimStart(); 
Смежные вопросы