2017-02-06 4 views
-2
string projectname= "1.25hr projectA"; 

Как я могу проанализировать приведенное выше строковое значение, чтобы удалить строку времени. Входное значение может использовать формат 1hr projectA или 1.25hr projectA, и выход будет projectA.Разделить строку До появления определенного символа

projectname = projectname.Substring(0, projectname.IndexOf('r')).Trim(); 

В этой строке выход, как 1.25h.

char[] delimiterChars = { 'r' }; 
string projectname = lstbxindex.SelectedItem.ToString(); 
string[] words = projectname.Split(delimiterChars); 

projectname = projectname.Substring(0, projectname.IndexOf('r')).Trim(); 
+1

Используйте 'имя_проекта = projectname.Split() .Last(); ' –

+0

В чем вопрос? – Frank

+0

Мне нужно удалить строку 1.25hr с "1.25hr ProjectA". – user688

ответ

1

Вы можете использовать простое выражение регулярное выражение для разбора текста: Regex.Replace(rawValue, @"^[\d|.|hr]+", "").Trim()

[Theory] 
[InlineData("1.25hr projectA")] 
[InlineData("1hr projectA")] 
[InlineData("projectA")] 
public void Can_parse_project_name(string rawValue) 
{ 
    var projectName= Regex.Replace(rawValue, @"^[\d|.|hr]+", "").Trim(); 

    projectName.Should().Be("projectA"); 
} 
+0

Спасибо. он даст результат как hr projectA. Мне также нужно удалить hr. – user688

+1

projectname = Regex.Replace (projectname, @ "^ [hr \ d |. | Hr |] ​​+", "") .Trim(); я получил ожидаемый результат. Спасибо. – user688

+0

@Logeswari Jegatheesan добро пожаловать. Выберите один из ответов в качестве выбранного вами ответа. – Anth12

3

Ваш вопрос расплывчатым один. Если вы хотите удалить "1.25hr " и подобные occurrencies:

string source = "my 1.45hr and 5.31hr test project"; 

    // "my and test project" 
    string result = Regex.Replace(source, @"[0-9.]+hr\s+", ""); 

Если вы хотите обрезки и в том числе последнего "ч"

// "test project" 
    string result = Regex.Match(source, 
    @"[0-9.]+hr\s+(.+?)$", 
    RegexOptions.RightToLeft).Groups[1].Value; 
+0

Спасибо. Но для моего примера будет возвращено пустое значение. – user688

+0

Я поставил 'source =" 1.25hr projectA "; // ваш пример', и у меня есть 'projectA' в обоих случаях. –

Смежные вопросы