Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056

Из строки вытащить нужную часть

12.03.2014, 23:18. Показов 4431. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прошу помочь.
Есть строка в переменной (см. ниже код), из нее необходимо вытащить часть. Эта часть находится СРАЗУ после уникального набора символов "000" (нет пробела между ними). "Часть нужная" пробелов не содержит и после нее стоит пробел и все остальное ненужное. Этот пробел и все остальное тоже не нужно. Как это сделать подскажите, пожалуйста?
VB.NET
1
2
3
Dim n as string = "бла бла бла 000[нужная_часть_без_пробелов] бла бла бла" ' выражение нужное без [] находится. Набор символов "000" уникален в строке, по нему можно ориентироваться
'код
Dim m as string = "нужная_часть_без_пробелов"   'Нужно это получить
Добавлено через 4 минуты
Сплитом я так понимаю строку не порезать, т.к. разделитель только в одной части есть.
Если Разделить сплитом, а дальше делить пробелами? Какие варианты?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2014, 23:18
Ответы с готовыми решениями:

Как из строки вырезать нужную часть?
как из строки string вырезать нужную часть строки string = 'Янковский И.А.','Ярович...

Регулярные выражения (как получить нужную часть строки)
Всем привет! Ребята, очень прошу помочь. Задача состоит в следующем: есть ссылки и они могут иметь следующий вид: ...

Вытащить часть из отдаваемой vk строки
Есть строка отдающий ВК как можно вытащить? ...

9
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
12.03.2014, 23:47
Лучший ответ Сообщение было отмечено Серж_87 как решение

Решение

emenem97,
VB.NET
1
2
3
4
5
6
7
8
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim n As String = "бла бла бла 000[нужная_часть_без_пробелов] бла бла бла"
        MsgBox(_RegEx(n, "(.*?[0-9]{3}\[(.*?)\].*?)", 2))
    End Sub
 
    Private Function _RegEx(ByVal text As String, ByVal template As String, Optional ByRef index As Integer = 0) As String
        Return New Regex(template).Match(text).Groups(index).Value
    End Function
2
 Аватар для Серж_87
1303 / 509 / 63
Регистрация: 09.08.2012
Сообщений: 2,056
12.03.2014, 23:51  [ТС]
edward_freedom, спасибо большое, все отлично работает
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
13.03.2014, 00:17
Лучший ответ Сообщение было отмечено как решение

Решение

VB.NET
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
     Dim str As String = "бла бла бла 000нужная_часть_без_пробелов1 бла бла бла 000нужная_часть_без_пробелов2"
     Dim ss() As String = str.Split(" "c)
     Dim fStr() As String = Array.FindAll(Of String)(ss, AddressOf fnd000)
     For Each item As String In fStr
         MsgBox(item.Substring(3) & vbCrLf)
     Next
 End Sub
 Private Shared Function fnd000(ByVal s As String) As Boolean
     If s.Substring(0, 3) = "000" Then
         Return True
     Else
         Return False
     End If
 End Function
4
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
13.03.2014, 00:32
ovva, Работает. Только не понятно как
0
 Аватар для MACHOMAN
54 / 30 / 4
Регистрация: 15.01.2014
Сообщений: 354
13.03.2014, 08:25
А как можно вытащить нужную часть из блакнота?
0
4708 / 3661 / 857
Регистрация: 02.02.2013
Сообщений: 3,518
Записей в блоге: 2
13.03.2014, 15:25
edward_freedom
Мне казалось, что в коде все достаточно прозрачно. Попробую перевести на русский.
Из исходной строки str получаем массив строк ss(). К массиву применяем метод FindAll который возвращает массив строк (из ss()) удовлетворяющих поставленному условию.
Формальное описание метода:
Public Shared Function FindAll(Of T) (array As T(), match As Predicate(Of T)) As T()
Делегат Predicate (Of T), определяет условия поиска элементов. Представляет метод, в котором задан набор критериев и который позволяет определить, удовлетворяет ли этим критериям заданный объект (в Visual Basic и C# нет необходимости явным образом создавать делегат).
Методы группы Find (тип Array):
Find - выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает первый найденный элемент;
FindLast - выполняет поиск элемента, удовлетворяющего условиям указанного предиката, и возвращает последний найденный элемент;
FindAll - извлекает все элементы, удовлетворяющие условиям указанного предиката;
FindIndex - ...
FindLastIndex - ...
2
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
13.03.2014, 16:34
Цитата Сообщение от emenem97 Посмотреть сообщение
Сплитом я так понимаю строку не порезать, т.к. разделитель только в одной части есть.
Отчего же?
VB.NET
1
2
3
4
5
6
7
8
9
10
Public Function FindText(ByVal aText As String, ByVal bText As String)
        Dim i As Integer, s As Object
        s = Split(aText, " ")
        For i = 0 To UBound(s)
            If InStr(s(i), bText) > 0 Then
                MessageBox.Show(s(i))
                Exit Function
            End If
        Next
End Function
Вызов:
VB.NET
1
FindText("бла бла бла 000[нужная_часть_без_пробелов] бла бла бла", "000")
1
 Аватар для edward_freedom
1569 / 1448 / 303
Регистрация: 01.10.2011
Сообщений: 2,636
13.03.2014, 18:23
Agapov_stas, А если например, вместо 000 будет рандомное число, как тогда?
0
3357 / 1776 / 83
Регистрация: 05.08.2010
Сообщений: 4,471
13.03.2014, 18:28
Цитата Сообщение от edward_freedom Посмотреть сообщение
А если например, вместо 000 будет рандомное число, как тогда?
В чем проблема проверять на IsNumeric первые три символа?
Соответственно немного упростится и функция, убрав поиск текстовой части(btext).
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.03.2014, 18:28
Помогаю со студенческими работами здесь

Как вытащить из строки текстовую часть?
Помогите! Есть строка в Textbox, из нее нужно вытащить текст и вывести в другой текстбокс! Помогите пожалуйста!

Как вытащить ещё часть строки
Всем привет! Есть такой код: string str = ((IEnumerable<string>) this.DownloadWebPage("http://test.ru/url", (object)...

Регулярные выражения - из строки вытащить выделенную часть
Привет КиберФорумцы, есть задача, нужно из строки вытащить выделенную часть, но только регулярным выражениями: : muvik2000 joined the...

Как вытащить часть строки из суперглобального массива $_SERVER
Добрый день ) Поделитесь кто-нибудь знанием о том, как вытащить частичку из поисковой строчки. ...

Как вытащить часть строки, зная начальную позицию и длину
Вопрос, собственно, в названии темы. Для поясненния приведу пример. Дано: strString = '01Ef2q3700d4gh' Необходимо в strSubString...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 31.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 30.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru