Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 31.01.2018, 16:38
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию Годные статьи по регулярным выражениям?

Хочется освоить эту степь, но что-то освоить, статьи как-то не проясняют много.

В частности, нужно найти 2 числовых значения,
Есть строка
Код:
'%s [some text A] $[some var digits|/$[some var digits B] [some text B] %s [some text C]'

, где [some text A/B/C] - статичный текст, который мы не знаем,
[some var digits/B] - переменное число, которое нас не интересует,
%s - искомые значения, начинается с цифры,
$ - просто символ.

Последний раз редактировалось nixon232, 31.01.2018 в 19:38.
Ответить с цитированием
  #2  
Старый 31.01.2018, 21:38
Аватар для @Rafa3L
@Rafa3L @Rafa3L вне форума
Начинающий
 
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
По умолчанию

Возможно, можно обойтись здесь и без регулярок, инструмент больно глобально-затратный: пример точного "пациента"-строки в студию, будем поглядеть
__________________
Помогаю платно.
Помогаю иногда бесплатно.
Ответить с цитированием
  #3  
Старый 01.02.2018, 01:33
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, вот такой regexp тебе вернет оба матча (массив):
\$\d*
Если надо как один, то будет вот так (одно совпадение):
\$\d*\/\$\d*

Для отладки удобно пользоваться такой штукой:
https://regex101.com/
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
nixon232 (01.02.2018)
  #4  
Старый 01.02.2018, 17:34
nixon232 nixon232 вне форума
Активный
 
Регистрация: 26.01.2014
Сообщения: 282
Версия Delphi: delphi xe4
Репутация: выкл
По умолчанию

Цитата:
Сообщение от lmikle
Ну, вот такой regexp тебе вернет оба матча (массив):
\$\d*
Если надо как один, то будет вот так (одно совпадение):
\$\d*\/\$\d*

Для отладки удобно пользоваться такой штукой:
https://regex101.com/
спасибо. Я правда уже реализовал через ScanF, но все равно благодарствую.
регулярка правда верная немного не та. Мне как раз нужно было исключить то, что находит ваше выражение. Верное получилось такое: \d*[.]\d*
Ответить с цитированием
  #5  
Старый 02.02.2018, 05:54
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ну, звыны. Значит плохо вопром написал. Я понял, что тебе именно надо найти то, что у тебя обозначенно как $[some var digits|
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 06:57.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter