Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB .NET > Обрезать переменную


Автор: Machaon 17.9.2008, 09:40
Есть переменная содержание которой например:

hjkhjk#jkhJK#HJK#HJK#HJK#Ljkhjk#HkjH#KJ#gjg@ghjk

Нужно чтобы от переменной осталось:

hjkhjk#jkhJK#HJK#HJK#HJK#Ljkhjk#HkjH#KJ#gjg@ghjk     'то что отмечено красным

Причем последние символы gjg@ghjk 
всегда содержат собаку и имеют разное количество символов до и после собаки.

помогите как мне обрезать переменную.

ПыСы Забыл сказать Решетки присутствуют так как и в примере но их разное количество но мне всегда нужно удалить все что находиться после последний решетки.

Автор: Bishop 17.9.2008, 10:00
Machaon, 
Код
System.Text.RegularExpressions.Regex.Replace("hjkhjk#jkhJK#HJK#HJK#HJK#Ljkhjk#HkjH#KJ#gjg@ghjk", "(?<=#)[^#]+$", "")


Или ещё проще:
Код
Dim myString As String = "hjkhjk#jkhJK#HJK#HJK#HJK#Ljkhjk#HkjH#KJ#gjg@ghjk"
myString.Substring(0, myString.LastIndexOf("#") + 1)

Автор: Machaon 17.9.2008, 10:11
Спасиба все робит )

Добавлено через 5 минут и 56 секунд
Только можеш обьяснить как действует этот код

Автор: Bishop 18.9.2008, 09:50
Machaon, 
первый код осуществляет замену с использованием http://ru.wikipedia.org/wiki/Регулярные_выражения. Выражение "(?<=#)[^#]+$" как раз соответствует тому "что находиться после последний решетки". И заменяется оно на пустую строку.
Второй код ищет последнее вхождение (LastIndexOf) символа "#" в строке. А потом выделяет подстроку (Substring) из исходной, с начала (0) строки до позиции последнего "#".

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)