Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Странности регулярных выражений / 8 сообщений из 8, страница 1 из 1
02.08.2020, 20:42
    #39985979
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
Всем привет!
Настраивая регулярки онлайн в сервисе https://regexr.com/], столкнулся со странностью - см. рисунок:



В общем, если я к шестерке присоединю какую то цифру, то все ок - распознавание произойдет. Но ведь выражение рассчитано и на 1 цифру номера, если я верно понимаю хвост конструкции "[\d]+".
...
Рейтинг: 0 / 0
02.08.2020, 20:44
    #39985981
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
PS: В дельфи использую широко известный юнит Андрея Сорокина RegExpr .
...
Рейтинг: 0 / 0
02.08.2020, 20:49
    #39985983
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
Вроде в данном случае "счету №98" и "счету №6" должны одинаково восприниматься, но нет, в этом сервисе, равно как в дельфийском модуле "счету №6" не воспринимается. Почему?
...
Рейтинг: 0 / 0
02.08.2020, 21:07
    #39985987
527470
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
Softologic,

Точку в шаблоне нужно экранировать, если вам нужна именно точка.

В строке "счету №6" "6" - съедает точка в шаблоне перед [\d]+
...
Рейтинг: 0 / 0
02.08.2020, 21:13
    #39985990
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
527470,

Точка перед [\d]+ нужна как фривольный символ на этом месте - как правило, пробел, а в некоторых случаях пустышка (отсутствие символов), что доказывает пригодность шаблона для случая "счету №98". Почему не срабатывает для одноциферных номеров, непонятно.
...
Рейтинг: 0 / 0
02.08.2020, 21:24
    #39985993
DimaBr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
Может там E - латинская ?
...
Рейтинг: 0 / 0
02.08.2020, 22:09
    #39985997
alekcvp
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
Softologic
Точка перед [\d]+ нужна как фривольный символ на этом месте - как правило, пробел, а в некоторых случаях пустышка (отсутствие символов), что доказывает пригодность шаблона для случая "счету №98".

А если точку перед [\d]+ заменить на \s*? И зачем там [], кстати?
Softologic
Почему не срабатывает для одноциферных номеров, непонятно.

Все понятно:
Код: plaintext
1.
2.
(счету №) . [\d]+
 счету №  9  8
 счету №  6 ???
...
Рейтинг: 0 / 0
02.08.2020, 22:38
    #39986001
Softologic
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Странности регулярных выражений
alekcvp
Softologic
Точка перед [\d]+ нужна как фривольный символ на этом месте - как правило, пробел, а в некоторых случаях пустышка (отсутствие символов), что доказывает пригодность шаблона для случая "счету №98".

А если точку перед [\d]+ заменить на \s*? И зачем там [], кстати?
Softologic
Почему не срабатывает для одноциферных номеров, непонятно.

Все понятно:
Код: plaintext
1.
2.
(счету №) . [\d]+
 счету №  9  8
 счету №  6 ???

Да, теперь понял. Спасибо!
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Странности регулярных выражений / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]