Текущее время: Пт, май 17 2024, 16:50

Часовой пояс: UTC + 3 часа


Правила форума


ВНИМАНИЕ!

Вопросы по SAP Query и Quick View - сюда



Начать новую тему Ответить на тему  [ Сообщений: 6 ] 
Автор Сообщение
 Заголовок сообщения: Поиск точного количества символов в подстроке с помощью регулярных выражений
СообщениеДобавлено: Ср, июн 23 2021, 18:23 
Начинающий
Начинающий

Зарегистрирован:
Ср, июн 23 2021, 16:10
Сообщения: 3
Все привет!

Задача:
Есть строка "Перечислениесредствнал/сч12233454541243123412магазин". Нужно понять есть ли в переданной строке ровно 20 цифр или нет.

Решение которые применялись:
Пытался использовать FIND REGEX '\d{20}' IN <строка> но данная проверка работает только когда цифр<20. Если больше 20 цифр, то данная проверка бесполезна.
Была попытка использовать FIND REGEX '\d{0,20}' IN <строка> - не помогло.
Гугл тоже не помог (ну или я плохо гуглю :D )

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


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Поиск точного количества символов в подстроке с помощью регулярных выражений
СообщениеДобавлено: Ср, июн 23 2021, 18:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Я использую такое: [0-9]{20}

_________________
"For all entries" не в SAP-ах, "for all entries" в головах! :)


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск точного количества символов в подстроке с помощью регулярных выражений
СообщениеДобавлено: Ср, июн 23 2021, 18:57 
Специалист
Специалист

Зарегистрирован:
Чт, дек 02 2010, 08:37
Сообщения: 156
FIND ALL OCCURRENCES OF REGEX '\d{0,21}' IN <строка> RESULTS result_tab?

UPD. попробовал. Если надо убедиться, что точно 20 цифр, то лучше
FIND ALL OCCURRENCES OF REGEX '\d{20,21}' IN <строка> RESULTS result_tab.
тогда в результат попадут значения не менее 20 цифр, а сколько их там точно, можно
глянуть в поле LENGTH.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Поиск точного количества символов в подстроке с помощью регулярных выражений
СообщениеДобавлено: Чт, июн 24 2021, 09:48 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1247
Если нужно просто проверить, что в строке есть ровно 20 цифр подряд, то подойдет вот такой регэксп
Code:
(^|\D)\d{20}(\D|$)

Но его нельзя использовать для вычленения той самой последовательности цифр, т.к. он прицепит по одному лишнему символу с каждой стороны (это можно потом выделить др. регеэспом, но на мой взгляд - больно медленно это )

_________________
Там, где я рос, единственным развлечением было запоминать число «π».(С) Н. Стивенсон


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Поиск точного количества символов в подстроке с помощью регулярных выражений
СообщениеДобавлено: Вт, июн 29 2021, 13:10 
Ассистент
Ассистент
Аватара пользователя

Зарегистрирован:
Сб, июн 08 2019, 12:01
Сообщения: 38
FIND REGEX '\d+' IN <строка>
IF strlen( <найденное_значение> ) NE 20.
" Ошибка
ENDIF.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Поиск точного количества символов в подстроке с помощью регулярных выражений
СообщениеДобавлено: Ср, июн 30 2021, 09:11 
Специалист
Специалист

Зарегистрирован:
Чт, дек 16 2010, 15:23
Сообщения: 131
Откуда: Набережные Челны
Пол: Мужской
Кодер написал(а):
Если нужно просто проверить, что в строке есть ровно 20 цифр подряд, то подойдет вот такой регэксп
Code:
(^|\D)\d{20}(\D|$)

Но его нельзя использовать для вычленения той самой последовательности цифр, т.к. он прицепит по одному лишнему символу с каждой стороны (это можно потом выделить др. регеэспом, но на мой взгляд - больно медленно это )

Можно по цифрам тоже добавить подгруппу
Code:
(^|\D)(\d{20})($|\D)
тогда в SUBMATCHES по идее будет


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 6 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB