Текущее время: Вт, июл 22 2025, 08:41

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


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


ВНИМАНИЕ!

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



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Чт, дек 31 2015, 15:15 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Когда-то написал:

Code:
* ищем начала закладок
  Find all occurrences of '\bkmkstart'
    in table it_All
    results it_Res[]
    ignoring case.
  Loop at it_Res into wa_Res.
    Find first occurrence
      of regex '^[^\\]'
      in table it_All from wa_Res-LINE
      match line idx.
    If sy-subrc = 0.
      Read table it_All into wa_All index idx.
      Condense wa_All.
      Translate wa_All to upper case.
      w_Bookmark-Name = wa_All.
...

Нужно переписать без регулярного выражения, т.к. не все версии SAP их поддерживают.
Казалось бы всё просто, найти имя закладки в содержимом типа:
Code:
{
\*
\bkmkstart
CurDate
}

Но это и смущает, особенно '^[^\\]' - неспроста же я это написал. :)
Я с рег. выражениями каждый раз через Help разбираюсь, ибо редко.

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Чт, дек 31 2015, 17:25 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Бгг.
Цитата:
У вас проблема. Вы решили использовать регулярные выражения. Теперь у вас две проблемы.

Ну-с, попробуем
Code:
'^[^\\]'

^ - признак начала строки
\\ - это экранированный символ \
[] -то что внутри скобок - перечисление. Без квантификатора - один символ (т.е. любой один из символов, перечисленных в скобках)
По факту,этим выражением в SAP (См прогу DEMO_REGEX_TOY) выбираются первые буквы в каждой строке

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Чт, дек 31 2015, 17:44 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Parazit написал:
...
Но это и смущает, особенно '^[^\\]' - неспроста же я это написал. :)
Я с рег. выражениями каждый раз через Help разбираюсь, ибо редко.

Кажется так:
- первая крышка '^' означает первый символ строки
- в квадратных скобках набор возможных значений для символа
- вторая крышка '^' внутри скобок означает отрицание 'не'
- двумя слэшами '\\' обозначается символ слэша '\', т.к. одиночный это спецсимвол - начало Escape-последовательности.

Т.е. ищем строку, где первый символ не слэш '\'.

p.s.
Ну и дурдом эти регулярные выражения! :D

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Чт, дек 31 2015, 17:52 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, авг 19 2004, 17:37
Сообщения: 1962
Откуда: Москва
Пол: Мужской
Кодер написал(а):
Бгг.
Цитата:
У вас проблема. Вы решили использовать регулярные выражения. Теперь у вас две проблемы.

Ну-с, попробуем
Code:
'^[^\\]'

^ - признак начала строки
\\ - это экранированный символ \
[] -то что внутри скобок - перечисление. Без квантификатора - один символ (т.е. любой один из символов, перечисленных в скобках)
По факту,этим выражением в SAP (См прогу DEMO_REGEX_TOY) выбираются первые буквы в каждой строке

Спасибо!
Единственное помню, что связался с ними в надежде, что поиск быстрее будет работать. :)

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Чт, дек 31 2015, 17:56 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пн, мар 28 2005, 15:38
Сообщения: 1257
Цитата:
- вторая крышка '^' внутри скобок означает отрицание 'не'

Точно. Склероз. Забыл, что в перечислениях это - отрицание.
Цитата:
Единственное помню, что связался с ними в надежде, что поиск быстрее будет работать. :)

Ну насчет быстрее - не факт (там свои заморочки на этот счет). Удобно с точки зрения написания программ. Код получается компактным.
Есть клевая книга по ним: Регулярные выражения. Дж. Фридл.
Рассказывает очень подробно обо всех возможных нюансах

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


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Пн, янв 11 2016, 09:57 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Полно же удобных ресурсов вроде regex101.com

Как бы не коробило от перлового синтаксиса, ничего удобнее и быстрее пока не придумали... :D

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


Принять этот ответ
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Вт, янв 12 2016, 14:00 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Пт, сен 23 2005, 11:11
Сообщения: 963
жаль, что в abap не pcre


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Ср, янв 20 2016, 13:36 
Начинающий
Начинающий

Зарегистрирован:
Пт, сен 09 2011, 12:28
Сообщения: 12
Kengur написал(а):
Полно же удобных ресурсов вроде regex101.com

Как бы не коробило от перлового синтаксиса, ничего удобнее и быстрее пока не придумали... :D


Поддерживаю оратора выше, но мне больше по нраву ресурс http://www.regexr.com/
Там и описание операторов в готовом выражении можно посмотреть, и необходимые операторы в библиотеке поискать.


Принять этот ответ
Вернуться к началу
 Профиль Отправить email  
 
 Заголовок сообщения: Re: Регулярные выражения, что я написал? :)
СообщениеДобавлено: Пн, фев 08 2016, 10:42 
Почетный гуру
Почетный гуру
Аватара пользователя

Зарегистрирован:
Чт, дек 20 2007, 18:21
Сообщения: 1613
Кстати прога DEMO_REGEX_TOY

_________________
я твой сап эфай внедрял
BAdI-позитив
Взять немножечко абопу, сунь туда кошачью *опу, RFC лапки, БТ старой бабки, на медленном базиснике переносить, тестовое окружение материть, снимать SAT пенку, биться головой о стенку, охапка тайм-шитов, отчет готов!


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

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


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

Сейчас этот форум просматривают: Yandex [Bot]


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

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