2015-09-24 4 views
-1

я мог получить файлы, которые могут выглядеть как те ниже:Удалить номер и символы из строки

something.csv 
something 
something(3) 
something(140).csv 

Так что, если файл в конце содержат anything(somenumber)

и зависит от файла с или без расширения anything(somenumber).extension

Я хочу, чтобы (somenumber) был удален из строки. Как я могу это достичь?

+0

Покажите нам код, который вы написали, чтобы попробовать! Проводили ли вы какие-либо исследования? –

+0

- имя файла всегда исправлено? я имею в виду, всегда будет (игнорируя расширение и цифры и символы)? –

+0

no - что-то вроде того, что вам нравится, может быть что угодно – Arie

ответ

0

Вариант 1:

string test="something(3)"; 
    test=Regex.Replace(test, @"\d", "").Replace("()",""); 

Вариант 2:

string test="something(3)"; 
int startindex=test.IndexOf("("); 
if (startindex>0) 
test=test.substring(0,startindex-1); 
+0

кроме regex - есть ли другое решение? – Arie

+0

int startindex = test.IndexOf ("("); test = test.substring (0, startindex-1); – Rakesh

+0

Но в этом случае вам нужно проверить «(», чтобы избежать исключений. – Rakesh

0
Dim str As String = "something(140).csv" 
    Dim newstr As String 
    Dim idx1, idx2 As Integer 
    idx1 = str.IndexOf("(") 
    idx2 = str.IndexOf(")") + 1 
    newstr = str.Replace(str.Substring(ixd1, (idx2 - ixd1)), "") 

или вы можете создать функцию, как показано ниже

Private Function RemoveStringWithin(ByVal str As String, _ 
             ByVal start_char As String, _ 
             ByVal end_char As String) As String 
     Dim idx1, idx2 As Integer 
     idx1 = str.IndexOf(start_char) 
     idx2 = str.IndexOf(end_char) + 1 
     RemoveStringWithin = str.Replace(str.Substring(idx1, (idx2 - idx1)), "") 
     Return RemoveStringWithin 
    End Function 

использование:

Dim str As String = "something(140).csv" 
Dim str1 As String = "something<another_noise%.csv" 

str = RemoveStringWithin(str, "(", ")") 
str1 = RemoveStringWithin(str1, "<", "%") 
+0

это вызовет ошибку, когда строка не содержит скобок типа: Необработанное исключение типа «System.ArgumentOutOfRangeException» произошло в mscorlib.dll в этой строке: RemoveStringWithin = str.Replace (str.Substring (idx1, (idx2 - idx1)), "") – Arie

+0

сначала введите свою строку ввода! –

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