Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.61/18: Рейтинг темы: голосов - 18, средняя оценка - 4.61
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423

Регулярные выражения при задании искомых строк

25.03.2014, 16:15. Показов 3655. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
MS DOS 6.22
Norton Commander.
Пример из учебника (справка F1 вроде как подтверждает правомерность).

Bash
1
[Bb]lock[Rr]ead(*);$
- файлы со словом blockread (где буквы b и r могут быть как прописными, так и строчными), за которым следует произвольный набор символов в круглых скобках, точка с запятой и сразу же вслед за этим конец строки.
Не работает!
Поэкспериментировал. Выяснилось, что виной любые символы команды, стоящие после "*" (любой символ).
Вроде соображение таково, что "*", обозначающая набор любых символов, включает в себя и любые символы, стоящие после нее. Вот, выходит, прога и наталкивается на "безконечность". Она не может искать "что-то" после команды найти "что угодно".
Как обойти такую траблу?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.03.2014, 16:15
Ответы с готовыми решениями:

ЧПУ. Замена строк, регулярные выражения. Как правильно использовать переменную в регулярные выражения ?
Здравствуйте! Решил реализовать ЧПУ на своем сайте. Первый этап это замена всех реальных ссылок на чпу ссылки. Так вот при замене я...

Регулярные выражения - вывод сообщения об ошибке при нахождении в строке выражения, начинающегося с цифры
Нужно чтобы при нахождении в строке выражения начинающегося с цифры появлялось сообщение об ошибке,например если ввести :2a,то будет...

Сравнение строк как регулярные выражения
Подскажите с виду такая простая задача. Сравнить к примеру строку "temp_" со строкой "Systemtemp_sis", если в ней присутствует ...

7
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
25.03.2014, 19:44
* - означает 0 или более любых символов.
М.б. скобки лишние?

Регулярку в NC где прописываете? - Для фильтрации списка отображаемых файлов?
0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
26.03.2014, 00:11  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
М.б. скобки лишние?
Пробовал и без скобок. (В конкретном примере скобки - это наличествующие символы в искомой строке). Любой символ (реально существующий) после *... прога не работает - "найдено 0 файлов".

Цитата Сообщение от Dragokas Посмотреть сообщение
Регулярку в NC где прописываете?
Если правильно понял вопрос - Меню-Команды-Поиск файла. В этом окне, кроме всего прочего, и содержится поле для ввода искомой строки. Работает при включенном флажке "Поиск по шаблону".

Добавлено через 3 часа 32 минуты
Хм...
Файл содержит такую строку:

blockRead(fadhlaerkj);
далее идет новая строка.

Вот такая конструкция поиска работает:

Bash
1
[Bb]lock[Rr]ead(*)*;*$*
безобразие какое-то...
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.03.2014, 01:06
У меня точно так же получилось.
Согласен, странноватый алгоритм.
Так работает:
[Bb]lock[Rr]ead(*
А вот так уже нет:
[Bb]lock[Rr]ead(*)
А еще вот так работает:
[Bb]lock[Rr]ead\(\)*

В справке дается немного:

Кликните здесь для просмотра всего текста
File Find, Norton Commander 5.5, Copyright 1998 by Symantec Corporation

NCFF [место] имя_поиска [/F:"текст" [/R] [/T]]
[/C] [/S] [/D] [/M:{H|S|R|A|D|N}...]
[/A:дата[,время]] [/B:дата[,время]]
[/G:размер[{K|M}]] [/L:размер[{K|M}]]

место Путь для выполнения поиска.
find_name Искомое имя файла.
/F Возможный текст, содержащийся в файле.
/R Шаблонное выражение.
/T Поиск текста только в текстовых файлах.
/D Поиск повторов.
/C Поиск только в текущем каталоге.
/S Поиск в подкаталогах.
/M Поиск файлов с учетом атрибутов:
H Скрытый S Системный
R Только для чтения A Архивный
D Каталог N Без атрибутов.
/A Поиск файлов с датой создания после указанной.
/B Поиск файлов с датой создания до указанной.
/G Поиск файлов с размером более указанного.
/L Поиск файлов с размером менее указанного.
Находил еще такое (неоф.), но здесь речь идет только о шаблоне для файлов:
Кликните здесь для просмотра всего текста
Клавиши Alt +F7 предназначены для поиска файлов. Данный режим обеспечивает программа Ncff, которую можно отдельно вызвать из командной строки. Для просмотра параметров команды наберите NCFF_/?. Имеется возможность поиска по имени или по содержимому файла.

В поле Найти файл(ы) указываются шаблоны файлов, которые необходимо найти. Например, шаблон *.* обозначает все файлы. Кроме того, можно воспользоваться следующими возможностями: [xxx] - определяет выбор одного из символов, например: [abcd].bat - указывает, что нужно найти файлы с именем: a.bat, b.bat, c.bat и d.bat, [a-d].bat - выбор, что и в предыдущем примере, где первые символы могут быть от а до d, то есть будут выбраны файлы с именем: a.bat, b.bat, c.bat и d.bat; ~ - отрицание, например: «.bat~ Autoexec.bat» - все пакетные файлы с расширением .bat, кроме файла Autoexec.bat; ^ - отрицание в квадратных скобках. Например, «[^a]*.exe» - все выполняемые файлы с расширением .exe, которые не начинаются с символа «а»; [[ ] - символ «открывающаяся скобка» («[а») в имени файла, [ ]] - символ закрывающая скобка («]») в имени файла, [ ][ ] - поиск любой скобки; * - в отличие от шаблонов ДОС, обеспечивает поиск любого количества символов до того, который находится за звездочкой. Например, «*A.bat» - обозначает пакетные файлы с расширением .bat, последний символ в имени которого «А»; $ - обозначает конец строки. Например, «компьютер$» - означает, что будет произведено поиск слова «компьютер», которое находится в конце строки; ^ - вне квадратных скобок обозначает начало строки. Например, «^компьютер» - означает, что будет произведен поиск слова «компьютер», которое находится в начале строки; \t - символ табуляции; \n - символ перевода строки; \r - символ возврата каретки.


В целом все очень похоже на регулярку FINDSTR.
1
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
26.03.2014, 01:59  [ТС]
Ох уж эти Симантек!(
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
26.03.2014, 20:06
Ну так-то по стандарту регулярок скобки обязательно экранировать бэкстэбомслэшем, или я ошибаюсь?
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18033 / 7736 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.03.2014, 21:42
FraidZZ, смотря к чему применять стандарт. Детальной справки нет.
По общепринятому синтаксису регулярка к именам файлов не применяется только шаблонные ? и *.
В NCFF Bazaroff ведет поиск содержимого файлов через шаблон.
Поставь NC... поиграйся. Там весьма странноватые заковырки.
Как уже говорил,
[Bb]lock[Rr]ead\(\)*
подходит, несмотря на то что внутри скобок также есть данные.
Фокус с обязательным * на конце тоже не совсем понятен. Когда тестил, я концевой CRLF удалял.
0
 Аватар для Bazaroff
288 / 93 / 11
Регистрация: 29.05.2011
Сообщений: 2,423
27.03.2014, 00:42  [ТС]
Цитата Сообщение от Dragokas Посмотреть сообщение
По общепринятому синтаксису регулярка к именам файлов не применяется
В NC есть и такое.
Например: [0-9]*.*
Аналогично и к каталогам.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
27.03.2014, 00:42
Помогаю со студенческими работами здесь

Регулярные выражения (поиск двух строк)
Суть такая, мне нужно получить названия всех картинок и ссылок с сайта (<img src= и <a href) Собственно проблему вызывает...

Регулярные выражения для выделения нескольких строк
Необходимо выделить все, что находится между Public Class и End Class, что это было совпадение. Какой необходим шаблон, чтобы несколько...

Запись/Чтение файла, массив строк, регулярные выражения
Привет ребята, столкнулся с такой задачей. Записываю данные в файл с помощью textBox и numericUpDown. Получается все с новой строки, а...

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

Инкрементация строк в DataRow при задании нового значения
Приветствую. Столкнулся с одним забавным глюком. Опишу ситуацию полностью, дабы оставить как можно меньше вопросов. Приложение-клиент в...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru