
Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
27.02.2020, 15:42:37
|
|||
|---|---|---|---|
|
|||
Как получить значение группы в регулярке? |
|||
|
#18+
В строке "хххххххх2020-01ххххххххх", где "х" означает любой символ (в основном буквы) в произвольном количестве, может быть только один (или ни одного) паттерн "dddd-mm" из двух чисел. Надо его вытащить из строки, распарсив на год и месяц. Делаю так (с регуляркой пока плохо знаком): Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Получаю ошибку Project *.exe raised exception class EConvertError with message ''2020-01' is not a valid integer value for Integer type'. Хотя регулярка вроде правильно составлена: одно совпадение, две группы - проверка https://regex101.com/r/qSB4ih/2 В чем моя ошибка? Можно ли получить искомое без использования групп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2020, 16:21:36
|
|||
|---|---|---|---|
Как получить значение группы в регулярке? |
|||
|
#18+
LiYing, А Groups.Count чему равно? И если он только один раз встречается, то почему Matches, а не Match? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2020, 16:40:25
|
|||
|---|---|---|---|
|
|||
Как получить значение группы в регулярке? |
|||
|
#18+
alekcvp LiYing, А Groups.Count чему равно? И если он только один раз встречается, то почему Matches, а не Match? Да, действительно. Заменил. Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Так работает, но Groups.Count = 3. Почему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2020, 16:54:17
|
|||
|---|---|---|---|
Как получить значение группы в регулярке? |
|||
|
#18+
LiYing Так работает, но Groups.Count = 3. Почему? Потому что нулевая группа - это весь захваченный текст, даже в вашем примере на regex101 - точно так же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
27.02.2020, 16:57:39
|
|||
|---|---|---|---|
|
|||
Как получить значение группы в регулярке? |
|||
|
#18+
alekcvp LiYing Так работает, но Groups.Count = 3. Почему? Потому что нулевая группа - это весь захваченный текст, даже в вашем примере на regex101 - точно так же. Смутил их лог: Match 1 Full match 8-15 2020-01 Group 1. 8-12 2020 Group 2. 13-15 01 Тут 2 группы :) Осталась вторая часть вопроса - можно ли получить искомое без использования групп? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=58&tablet=1&tid=2038541]: |
0ms |
get settings: |
17ms |
get forum list: |
26ms |
check forum access: |
6ms |
check topic access: |
6ms |
track hit: |
75ms |
get topic data: |
26ms |
get forum data: |
7ms |
get page messages: |
94ms |
get tp. blocked users: |
3ms |
| others: | 365ms |
| total: | 625ms |

| 0 / 0 |
