Форум программистов, компьютерный форум, киберфорум
Visual Basic .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63

Доработать регулярное выражение под наличие или отсутствие слеша

21.02.2019, 14:21. Показов 872. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите доработать паттерн, возвращающий в указанном случае в группе 1 "Иван Иванович", в группе 2 "Иванов":
VB.NET
1
2
3
4
5
Dim regFIO As Regex = New Regex("(\S*\s*\S*)\s*\/(.*\s*)\/")
Dim str As String = "Иван Иванович /Иванов/"
Dim m As Match = regFIO.Match(str)
Dim n = m.Groups(1).Value
Dim sn = m.Groups(2).Value
Нужно изменить паттерн для случаев как наличия символов "/" так и их отсутствия и в первой группе запоминалось бы "Иван Иванович Иванов".
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2019, 14:21
Ответы с готовыми решениями:

Доработать регулярное выражение
Делаю что-то типа логико-арифметического калькулятора, который должен вычислять и арифметические, и логические выражения. Выражения...

Наличие или отсутствие строки в тексте
Добрый день. Есть текст, в котором есть множество блоков такого вида: router bgp 64512 neighbor 172.16.0.1 router bgp 64512 neighbor...

FM Tuner: как получить наличие или отсутствие сигнала на заданной частоте
Добрый день товарищи форумчани, пытаюсь написать свою программу fm tuner на языке VB.NET, использую тюнер beholder, не как не могу получить...

14
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
21.02.2019, 19:25
Пропробуйте такую регулярку "(\w+\s+\w+(?:\s+\w+)?)(?:\s+)?(/\w+/)?"
Прим.: количество пробелов меду словами может быть любым, если у вас фиксировано 1, то уберить + после \s для оптимизации
3
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 19:40  [ТС]
Спасибо! Почти то, что надо.
Для строки "Иван Иванович Иванов" возвращаются:
n=Иван Иванович Иванов
sn=""


Для строки "Иван Иванович /Иванов/" возвращаются:
n=Иван Иванович
sn=/Иванов/


Нужно sn=Иванов, т.е символы "/" не должны запоминаться.
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
21.02.2019, 19:50
Тонкости сразу писать надо, я ж не телепат =)
"(\w+\s+\w+(?:\s+\w+)?)(?:\s+)?(?:/(\w+)/)?"
3
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 19:54  [ТС]
Прошу прощения за невнимательность.
Уточнение:
Если в строке символы "/" присутствуют, то во второй группе должны быть слова, находящиеся между ними, а в первой группе слова расположенные до первого символа "/".
Если символы "/" отсутствуют, то в первой группе должна быть вся строка, а во второй - пусто
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
21.02.2019, 19:57
Цитата Сообщение от Sergey_New Посмотреть сообщение
Уточнение
Я ответил постом выше, должно решить
0
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 20:17  [ТС]
В последнем моём сообщении, не знаю почему, пропала фраза:
Количество слов в строке может быть любым от одного до нескольких.

Если можно, решите.
0
 Аватар для Sklifosofsky
1085 / 915 / 213
Регистрация: 29.09.2015
Сообщений: 1,019
21.02.2019, 20:19
Цитата Сообщение от Sergey_New Посмотреть сообщение
Количество слов в строке может быть любым от одного до нескольких.
Примеры напишите
0
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 20:34  [ТС]
str="слово1 слово2 слово3 /слово4 слово5 слово6/"
В словах могут быть цифры (например Пётр1, Пётр 1), или такое сочетание слов: Иванов-Крамской.
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
21.02.2019, 20:43
Sergey_New, использование регулярки обязательно ?
0
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 20:50  [ТС]
SoftIce, нет, не обязательно. Думал будет проще с регексом, чем определить наличие "/" и в зависимости от этого получать нужные данные. Похоже я ошибся
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
21.02.2019, 20:52
Цитата Сообщение от Sergey_New Посмотреть сообщение
Думал будет проще с регексом
Проще, если что-то в них понимаешь. А то так и придётся по каждой мелочи обращаться к Склифософскому чтобы поправил.
2
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 20:57  [ТС]
SoftIce, под "проще" понимался более короткий код. А так, да, нужно многое понимать, но нельзя объять... ну вы понимаете )
0
es geht mir gut
 Аватар для SoftIce
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
21.02.2019, 20:59
В стиле VB6
VB.NET
1
2
3
       Dim s As String = "Иван Иванович /Иванов/"
        Dim n As String = s, sn As String = ""
        If InStr(s, "/") Then n = Split(s, "/")(0) : sn = Split(s, "/")(1)
1
26 / 26 / 1
Регистрация: 16.01.2010
Сообщений: 63
21.02.2019, 21:06  [ТС]
Цитата Сообщение от SoftIce Посмотреть сообщение
В стиле VB6
Согласен )
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.02.2019, 21:06
Помогаю со студенческими работами здесь

Регулярное выражение под IRC сообщения
Пишу регулярку для проверки корректности IRC-сообщений. Вообщем нашел сайт,где предлагается написать эту регулярку, там есть примеры,по...

Регулярное выражение под css класс
Добрый день ув. пользователи! Подскажите пожалуйста регулярное выражение на имя css класса, которое будут вводить в текстовое поле,...

Исправить регулярное выражение под кириллицу
Здравствуйте! Помогите пожалуйста. В .htaccess прописываю вот такое: RewriteRule ^(+)$ /redirect.php?link=$1 Не корректно работает...

Составить регулярное выражение под приведенные требования
Может ли кто-нибудь написать или подсказать, как пишется регулярное выражение для следующих условий: 1) Русские буквы с различением...

Как создать регулярное выражение подходящее под
длина от 5 до 10 символов есть хотя бы 1 цифра есть хотя бы 1 спецсимвол нет пробелов пытался сам, но так и не смог сделать все...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
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 30.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 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru