Текущее время: Ср, июн 25 2025, 18:01

Часовой пояс: 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 часа


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

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


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

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