Форум программистов, компьютерный форум, киберфорум
VBA
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
14 / 3 / 0
Регистрация: 27.07.2018
Сообщений: 97
Word

Регулярка. Выбрать все слова кроме определённых

11.03.2019, 19:37. Показов 2522. Ответов 4

Студворк — интернет-сервис помощи студентам
Пытаюсь получить регулярным выражением данные, но опыта нет. Прошу помощи.
К примеру есть строка.
Visual Basic
1
testString = "Попытка= один пробую= все выбрать все многие= слова которые= не входят= от в кучу= определенных"
В выборку должно попасть.
= один
= все
= слова
= определенных
Кроме
= не
= от
Или другими словами в выборку должно попасть все слова у которых предыдущее слово оканчивается на =
Кроме некоторых слов к примеру (не, от) и у которых предыдущее слово тоже оканчивается на знак =
Это выбирает все варианты
Visual Basic
1
Pattern = "= [А-Яа-я]{2,} "
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
11.03.2019, 19:37
Ответы с готовыми решениями:

Переместить все файлы , кроме определённых 3 файлов в папку
Переместить все файлы , кроме определённых 3 файлов в папку "C:\Очистка рабочего стола\Все файлы\1" ? Вообще это весь вопрос :D

Удалить все папки и файлы кроме определенных 2 папок и 2 файлов
Нужна помощь профессионалов ! Борюсь со скриптом bat Надо удалить все папки и файлы кроме определенных 2 папок и 2 файлов Вообщум...

Выбрать все, кроме
пробую писать тест: вопрос-ответ. есть база вопросов. нужно брать рандомно один вопрос и показывать пользователю. он отвечает. записываю id...

4
 Аватар для Step_UA
1591 / 664 / 225
Регистрация: 09.06.2011
Сообщений: 1,334
11.03.2019, 22:24
Visual Basic
1
(?:=\s)(\w+)
0
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
11.03.2019, 22:52
Лучший ответ Сообщение было отмечено keha как решение

Решение

keha,
1. в конец вместо пробела поставить ( |$) , т.е. пробел или конец строки, чтобы последнее слово тоже нашлось.
2. можно попробовать "= (?!не|от)[а-я]{2,}( |$)" , но это будет означать слово, которое не начинается на "не" или "от". То есть слово например "немец" не будет найдено, хотя по условию должно.
Вообще, если это практическая задача, я бы не советовал конструировать сложные шаблоны. Быстрее (в разработке) дополнить регулярку средствами языка. Код модуля
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
Option Explicit
Option Compare Text 'не различать регистр при сравнении текстов
 
Sub Ke()
Const testString = "Попытка= один пробую= Все выбрать все многие= слова которые= НЕ входят= от в кучу= определенных"
Dim re As Object, x, s$
  Set re = CreateObject("vbscript.regexp")
  re.Pattern = "= ([а-я]{2,})( |$)"
  re.Global = True
  re.ignorecase = True
  For Each x In re.Execute(testString)
    s = x.submatches(0)
    Select Case s
    Case "не", "от" 'ничего не делать
    Case Else
      Debug.Print s
    End Select
  Next
End Sub
Code
1
2
3
4
один
Все
слова
определенных
1
14 / 3 / 0
Регистрация: 27.07.2018
Сообщений: 97
11.03.2019, 23:38  [ТС]
Цитата Сообщение от Казанский Посмотреть сообщение
Вообще, если это практическая задача, я бы не советовал конструировать сложные шаблоны
Я предполагал что шаблон может получится не сложным. Пока туда сюда, сделал так.
Выбрал то что не должно попадать заменил на явно не попадающийся набор знаков
заменил то что надо менять, а то ранее изменённое вернул назад.
А вообще это половина задачи, разделил на пошаговое выполнение.
Щас попробую ваш код.

Добавлено через 7 минут
Цитата Сообщение от Казанский Посмотреть сообщение
это практическая задача
А понял вашу мысль.
Если идет перебор коллекции Возможно узнать номер или обратится к следующему значению.
0
14 / 3 / 0
Регистрация: 27.07.2018
Сообщений: 97
12.03.2019, 13:11  [ТС]
Благодаря Казанскому сделал что требовалось, а надо было изменить знак ударения
который попадает на последнюю букву в слове (Церковнославянский язык) и притом когда следующее слово не из списка.
В том шрифте знаки ударений под символами "=" и "+".
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Function ПравкаУдаренийРУ(Строка)
    Dim myRegExp As New RegExp
    Dim aMatch As Match
    Dim colMatches As MatchCollection
    myRegExp.MultiLine = True
    myRegExp.Global = True
    myRegExp.IgnoreCase = False
    myRegExp.Pattern = "(=([.|,|:|;|!|\?|»|”])( |$))|(= ([А-Яа-я=]{1,})([.|,|:|;|!|\?]{0,1})( |$))"
    
    Строка = Replace(Строка, ChrW(769), "=")
    
    Set colMatches = myRegExp.Execute(Строка) ' получаем коллекцию совпадений с образцом
    
    For Each aMatch In colMatches ' проходим по всей коллекции
        a = aMatch.FirstIndex ' порядковый номер первого символа найденного образца
        s = aMatch.SubMatches(4) ' То что в скобках
        'b = aMatch.Length ' кол-во символов в найденном образце
        'c = aMatch.Value ' полный образец
        Select Case s
        Case "же", "бо", "ли", "ми", "ти", "си", "мя", "тя", "Тя", "ся", "ны ", "вы" 'Пропускает
        Case Else
            Mid(Строка, a + 1, 1) = "+" ' Заменяет
        End Select
    Next aMatch
    
    ПравкаУдаренийРУ = Строка
End Function
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.03.2019, 13:11
Помогаю со студенческими работами здесь

Как выбрать все элементы кроме первого
Добрый день есть вот такая конструкция? <div class="nav"> <ul class="clearfix"> ...

Выбрать все изображения, кроме тех у которых
Мне нужно выбрать из области класса .cards все картинки, у которых opacity!=1; Как можно сделать? Заранее спс. $('.cards*') не робит...

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

Выбрать все записи кроме первой sql
Здравствуйте! Подскажите как вытащить все записи кроме первой? Хотелось бы как-то по красивей чем: SELECT `table`.`row` FROM...

Выбрать все дочерние элементы, кроме указанных
Как при помощи jquery выбрать все дочерние элементы, кроме указаных? Добавлено через 1 минуту Пробовал ...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
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 была полностью переписана на Си, в. . .
Инструменты 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