|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
Здравствуйте, Использую TRegEx.IsMatch из модуля System.RegularExpressions для проверки соответствия строки текста некоторому регулярному выражению (паттерну). Но как проверить сам pattern регулярного выражения, правильно ли он составлен? Например, если я проверяю Код: pascal 1.
то во время выполнения такой проверки я получу исключение ERegularExpressionError: Error in regular expression at offset 0: nothing to repeat. что очень неприятно. Поэтому до проверки if я хочу проверить, правильно ли вообще составлен шаблон рег.выражения. Искал что-то вроде ф-ции IsPatternValid или CheckPattern, но не нашел. Подскажите, есть ли способ проверить правильность составления регулярного выраждения? Заранее благодарен. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 09:16 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
Неправильно, совсем :) Я думаю Вам необходимо почитать про регулярные выражения ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 10:16 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
Проверить можно тут https://regex101.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 10:17 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
m52 то во время выполнения такой проверки я получу исключение ERegularExpressionError: Error in regular expression at offset 0: nothing to repeat. что очень неприятно. Ну так в чём проблема то? Оберни if в try - except и в случае ERegularExpressionError делай что ты хочешь делать при неправильном паттерне. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 11:13 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
Я так и сделал, ловлю Exception, но проблема в том, что возбуждения исключения сильно замедляет проверку каждого файла. Ладно, тема уже не актуальна для меня, нашел обходной путь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 12:16 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
m52возбуждения исключения сильно замедляет проверку каждого файла. А зачем ты проверяешь остальные файлы после первого, вызвавшего исключение? Это совершенно бессмысленно. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 12:19 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
m52 Я так и сделал, ловлю Exception, но проблема в том, что возбуждения исключения сильно замедляет проверку каждого файла. Ладно, тема уже не актуальна для меня, нашел обходной путь. Т.е., у тебя обработка исключений медленнее, чем работа с файлами? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 16:09 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
Смотрите мою тему, может поможет: https://www.sql.ru/forum/1327941/strannosti-regulyarnyh-vyrazheniy Там еще ссылка на сайт-валидатор есть: https://regexr.com/ ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 17:59 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
У меня программа сканирует каталоги с файлами, где файлов порядка 67 шт. Если рег.выражение написано с ошибкой, то на каждый файл вызывается исключение в RegEx, т.е. 67 раз и тогда время сканирования файлов ~2 сек, в то время как если не вызываются исключения, то пробежка по файлам занимает 0 сек. Внешние чужие сайты-валидаторы не интересуют, разумеется. Это понятно, что завязка на сторонний сайт (сервис) - это очень-очень плохо. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 18:21 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
m52 У меня программа сканирует каталоги с файлами, где файлов порядка 67 шт. Если рег.выражение написано с ошибкой, то на каждый файл вызывается исключение в RegEx Ну так объясни, зачем после первого исключения ты повторяешь заведомо невыполнимую операцию ещё 66 раз? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 18:40 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
m52 Внешние чужие сайты-валидаторы не интересуют, разумеется. Это понятно, что завязка на сторонний сайт (сервис) - это очень-очень плохо. Как раз таки, ссылку на сайт-валидатор я вам с иной целью дал. Чтобы потренироваться на нем и понять как работают регулярные выражения, а не с целью привязки программы к нему. Посмотрите мой топик, я ведь с похожей задачей там вопрошал - "Но как проверить сам pattern регулярного выражения, правильно ли он составлен?". ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 18:43 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
m52 У меня программа сканирует каталоги с файлами, где файлов порядка 67 шт. Если рег.выражение написано с ошибкой, то на каждый файл вызывается исключение в RegEx, т.е. 67 раз и тогда время сканирования файлов ~2 сек, в то время как если не вызываются исключения, то пробежка по файлам занимает 0 сек. ... Т.е., обработка исключения занимает 2/67 сек? Да у тебя тебя просто код кривой. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 18:55 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
А вы видели мой код? Да нет никакого кода, я просто зажал try-except-end и всё. Код: pascal 1. 2. 3. 4.
Выполните это 67 раз и почувствуйте задержку. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 18:59 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
softwarerзачем после первого исключения ты повторяешь заведомо невыполнимую операцию ещё 66 раз? Он надеется, что настойчивость сотворит чудо и кривая регулярка починится сама собой. "Камень воду точит", "если долго сидеть у реки" и всё такое... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 19:00 |
|
Как проверить pattern регулярного выражения?
|
|||
---|---|---|---|
#18+
Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
А еще можно так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.09.2021, 21:34 |
|
|
start [/forum/topic.php?fid=58&msg=40096846&tid=2037033]: |
0ms |
get settings: |
11ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 177ms |
0 / 0 |