Суффикс x0d что означает
Перейти к содержимому

Суффикс x0d что означает

  • автор:

Кладовщик — мобильное приложение для Android

Qr.png

Приложение Кладовщик позволяет использовать мобильный телефон как сканер штрихкодов или ТСД при работе в MeaSoft. Устанавливается на мобильное устройство или ТСД под управлением Android.

Сканер cчитывает штрихкод отправления с помощью камеры устройства и передает информацию в систему MeaSoft. Бесплатная функция.

Терминал сбора данных (ТСД) по штрихкоду выводит информацию об отправлении на экране устройства. Требуется лицензия на каждого пользователя.

Функциональность в режиме ТСД:

  • прием отправлений на склад;
  • просмотр информации об отправлении и плановом курьере на экране мобильного устройства;
  • сканирование отправления на полку или в комплект курьера;
  • выдача курьеру;
  • контроль целостности заказа;
  • обмен данными с системой MeaSoft.

Чтобы скачать приложение, перейдите по ссылке или отсканируйте код справа. В некоторых ТСД не доступен Google Play, тогда можете скачать и установить APK-файл, но не забывайте его обновлять.

Мобильный телефон должен быть подключен к той же локальной сети, что и компьютер. Требуется версия Android 4.4W и выше.

Настройка ТСД

Для правильной работы ТСД необходимо в настройках сканера установить считывание контрольного числа для кодировок EAN-13 и EAN-8.

Так же необходимо установить суффикс «\x0D» (без кавычек)

Начало работы со сканером

  1. В MeaSoft откройте пункт главного меню Настройка >Параметры и перейдите на вкладку Оборудование.

Параметры оборудование.png

ТСД выбор режима.png

Начало работы с ТСД

  1. Выполните шаги 1-4 настройки работы сканера.
  2. В приложении Кладовщик выберите режим работы ТСД. Откроется окно авторизации:

ТСД авторизация.png

  • нажмите на кнопку Сканировать код. В офисном приложении выберите пункт главного меню Настройки >Пользователи, откройте карточку пользователя и нажмите на кнопку Авторизация в ТСД. Отобразится QR-код, отсканируйте его мобильным приложением;
  • в полях Логин и Пароль укажите учетные данные пользователя системы MeaSoft и нажмите Отправить.

ТСД работа ТСД.png

Количество пользователей, которые могут подключиться к системе в режиме ТСД ограничено количеством пользовательских лицензий.

Чтобы освободить лицензию, в мобильном приложении нажмите Выйти. Неактивный пользователь отключается автоматически через час после последнего действия. Если приложение на устройстве закрыто без выхода из аккаунта пользователя, рабочее место освободится автоматически через 5 минут.

Чтобы просмотреть список подключенных пользователей, в MeaSoft откройте пункт главного меню Настройка > Активные пользователи. Пользователи ТСД отображаются с соответствующей пометкой в столбце «Способ подключения».

Для работы ТСД нужен сервер, это может быть запущенная программа или специальная служба. Т.е. ТСД всегда должен подключаться к системе, сам по себе он не работает. Если необходимо на складе работать без компьютера, то нужно установить службу ТСД и подключать ТСД к ней. Обычно ТСД службу устанавливают на сервер, аналогично модулю автоматизации. При этом, если на сервере статический IP адрес и настроен проброс порта, то с ТСД можно работать и по интернету.

Настройки приема

Чтобы перейти к настройкам приема корреспонденции, в режиме приема нажмите на в верхнем правом углу. Откроется страница настроек:

ТСД настройки приема.png

Перенумеровывать. Назначить адресу новый номер в корреспонденции, если она еще не была просуммирована.

Игнорировать ошибки повторного сканирования. Не показывать ошибку при повторном сканировании корреспонденции.

Выдавать накладные. При сканировании корреспонденция выдается плановому курьеру на дату, указанную в настройке Дата выдачи.

Дата выдачи. Установите дату выдачи принимаемого отправления.

Крупногабарит. При сканировании штрихкода в карточке отправления устанавливается тип корреспонденции, соответствующий крупногабариту. Позднее при планировании логисты не назначают такие отправления пешим курьерам или малогабаритным автомобилям. Чтобы настроить тип корреспонденции для крупногабарита, в переменной Справочники > Переменные > Корреспонденция > Прием > Тип для крупногабарита выберите значение из выпадающего списка.

Обязательно использовать сборку в приеме. Если флажок установлен, принятый заказ нужно обязательно положить на полку, иначе невозможно перейти к следующему сканированию.

Прием отправлений

  1. Когда мобильное устройство готово к работе в режиме ТСД, в мобильном приложении нажмите на кнопку Прием.
  2. Нажмите на кнопку и отсканируйте принимаемое отправление. На экране отобразится информация об отправлении:

ТСД прием.png

  • Нажмите на кнопку и отсканируйте штрихкод сборки комплекта курьера. На экране отобразится уведомление о том, что отправление добавлено в сборку.
  • Повторите шаги 2-3 для всех принимаемых отправлений.
  • В результате статус трекинга принятых корреспонденций изменится на «Получен складом».

    Выдача курьеру

    Вы можете принимать отправления и выдавать курьеру на руки одновременно. Для этого в настройках приема установите флажок Выдавать накладные и укажите дату выдачи.

    В результате при сканировании отправление будет принято на склад и выдано плановому курьеру на указанную дату. Статус трекинга отправления сменится на «Выдан курьеру на доставку».

    Поиск отправлений

    Функциональность предназначена для отображения информации по отправлению по его штрихкоду.

    Чтобы просмотреть информацию по отправлению, в режиме ТСД нажмите на кнопку Поиcк и отсканируйте штрихкод отправления. Страница информации выглядит следующим образом:

    ТСД поиск.png

    Список отображаемых полей:

    • Номер накладной,
    • Шифр,
    • Плановый курьер,
    • ФИО получателя,
    • Город получателя,
    • Адрес получателя,
    • Телефон получателя,
    • Плановая дата доставки и время,
    • Наложенный платеж,
    • Режим срочности,
    • Метро,
    • Город агента,
    • Кол-во мест,
    • Поручение,
    • Вложение,
    • Заказчик,
    • Хранится в ячейке,
    • Статус корреспонденции.

    Суффикс x0d что означает

    Здесь могла бы быть ваша реклама

    Покинул форум
    Сообщений всего: 4574
    Дата рег-ции: Июль 2006
    Откуда: Israel

    Помог: 3 раз(а)

    Секрет
    Теперь, когда вы уже наверняка второпях отправили свой запрос,
    я расскажу вам простой секрет, который сэкономит вам уйму ожиданий,
    даже если первый ответ по теме последуем сразу же.

    Само собой я знаю что ответят мне тут же, и если я посмотрю
    на сообщения на форуме, то пойму что в общем то я и не ошибаюсь.
    Но еще я точно замечу, что очень мало тем, в которых всего два ответа :
    вопрос автора и еще два сообщение вида Ответ + Спасибо

    После этого приходится начинать уточнять этим неграмотным что мне надо.
    Они что, сами читать не умеют? А уточнять приходится.
    И иногда пока они переварят то что я им скажу проходит и не одна ночь..

    Уверен что если бы я им сказал что у меня есть
    фиолетовый квадрат, и нужно превратить его в синий треугольник
    и я пытался взять кисточку, макнуть в банку и поводить ей по квадрату
    но почему то кисточка не принимала цвет краски в банке,
    то на мой вопрос — где взять правильные банки мне бы ответили гораздо быстрее
    предложив её открыть, а не тратить еще стольник на жестянку.

    Поэтому с тех пор я строю свои вопросы по проверенной давным давно схеме:
    Что есть
    Что нужно получить
    Как я пытался
    Почему или что у меня не получилось.

    На последок как оно происходит на форумах

    Цитата:

    Новичок: Подскажите пожалуста самый крепкий сорт дерева! Весь инет перерыл, поиском пользовался!
    Старожил: Объясни, зачем тебе понадобилось дерево? Сейчас оно в строительстве практически не используется.
    Новичок: Я небоскрёб собираюсь строить. Хочу узнать, из какого дерева делать перекрытия между этажами!
    Старожил: Какое дерево? Ты вообще соображаешь, что говоришь?
    Новичок: Чем мне нравиться этот форум — из двух ответов ниодного конкретного. Одни вопросы неподелу!
    Старожил: Не нравится — тебя здесь никто не держит. Но если ты не соображаешь, что из дерева небоскрёбы не строят, то лучше бы тебе сначала школу закончить.
    Новичок: Не знаите — лучше молчите! У меня дедушка в деревянном доме живёт! У НЕГО НИЧЕГО НЕ ЛОМАЕТСЯ.
    Но у него дом из сосны, а я понимаю, что для небоскрёба нужно дерево прочнее! Поэтому и спрашиваю. А от вас нормального ответа недождёшся.
    Прохожий: Самое крепкое дерево — дуб. Вот тебе технология вымачивания дуба в солёной воде, она придаёт дубу особую прочность:
    Новичок: Спасибо, братан! То что нужно.

    Отредактировано модератором: Uchkuma, 26 Апреля, 2011 — 10:21:12

    Программы для автоматизации торговли, автоматизации ресторанов и кафе

    И насчет экрана — у меня нетбук 11.6 дюймов, и на нем все прекрасно видно )).
    Не думаю что где то сидит Менеджер с еще более мелким экраном.

    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 2:46 pm
    Виктор Павлов писал(а):

    Ваше решение очень простое. Поставите 4 х Enter в передача данных сканера и все начинает сканировать в поле Партия. При новой скан, курсор идет на следующая строка, опять в Партия. Если строка пустая, то курсор не перемещается.

    Такое решение имеет странный побочный эффект. В конце серийного номера записываются символы x0D x0A . Причем не всегда. Соответственно при продаже товар не находится по серийному номеру. Клиент в полном недоумении. На экране все верно.
    Не поймем в чем ошибка

    _________________
    Докин Сергей
    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 2:51 pm
    Попробуйте сбросить сканер на заводские настройки и настройте его заново.
    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 3:04 pm

    Microinvest

    Цитата:
    В конце серийного номера записываются символы x0D x0A

    Драйвер сканера глючит. При никакая ситуация не должно появляться такие символы.

    Есть вероятность, что компьютер медленой и не успевает с кодировка символов, но ничто больше как идея нет.

    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 3:06 pm
    Как подключается сканер USB, COM или USB с эмуляцией COM?
    Какой у Вас модель сканера?
    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 5:46 pm
    Виктор Павлов писал(а):
    Цитата:
    В конце серийного номера записываются символы x0D x0A

    Драйвер сканера глючит. При никакая ситуация не должно появляться такие символы.

    Есть вероятность, что компьютер медленой и не успевает с кодировка символов, но ничто больше как идея нет.

    И Вам Виктор доброго дня и большого здоровья!

    Уже сами разобрались. Глючит достойной памяти Утилити центр. А драйвера и нет никого. USB HID сканер. И год работал без претензий и нареканий. И компьютер достаточный INTEL i3.

    Вот что выяснили.
    Если мы просто работаем, без всяких ухищрений, то надо что сканер выдавал в конце кода CR+LF, а Утилити центр никакого не надо. Все работает.
    А вот когда на надо Cr+Lf больше, кстати у нас получилось 8 , а не 4, что курсор всегда попадал в поле партия, то в сканере Cr+Lf необходимо выключить. Иначе он прямиком попадает в поле Партия. И оператор об этом даже не догадывается. Символы то непечатаемые, на экран не выводятся.
    Но и это еще не все. Настроенный таким образом УЦ необходимо ОТКЛЮЧАТЬ, а то бывают разные смешные эффекты при простом наборе на клавиатуре.
    Это опять не все. Чтобы сделать РАСХОД/ПЕРЕМЕЩЕНИЕ таким сканером необходимо нажимать ENTER вручную, после каждого кода. Ну или в том же УЦ создаем еще один «сервер«, чтоб нажимал Ентер 1 только раз. Тут мне заметят, что в УЦ есть специальная опция «Нажимать Enter после ввода». Вроде включаем и все. Ан нет. Опять снова тут совсем.
    С этой опцией Enter нажимается 2 (два) раза. То есть считывается код, выбирается товар, переход на следующую строку и опять таблица выбора товара. (Программа Склад ПРо).
    Помогает «Включить суффикс» с одним .
    Можно сказать, что все работает, но как то уж очень криво. Как будто в России сделано
    Не знаю как девочка разберется с постоянным переключением «Серверов» в УЦ. А если еще нечаянно два запустит, то вообще Цирк.
    PS.
    А вот как теперь исправить 300 позиций с CR+LF на конце, я пока не знаю. К утру желательно поправить.
    PS.PS
    Не надо советовать, как писать запросы , подскажите как выделить двоичные (HEX) данные. В MS SQL раньше не сталкивался.

    _________________
    Докин Сергей
    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 5:51 pm

    Microinvest

    базу бы получить. а там и запросик будет

    _________________
    [База знаний]|[Бесплатная помощь]|[ Веб склад ]
    ▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬
    Telegram: 359887637163. 09:00-17:30 GMT+2. Ответ от 1 минуты до 3 часов в рабочее время!
    ▬▬▬▬▬▬▬▬▬ஜ۩۞۩ஜ▬▬▬▬▬▬▬▬▬
    Удаленный доступ через http://microinvest.net/pub/mremote.exe или Anydesk 29 EUR/час

    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 7:27 pm
    P0ZiTR0N писал(а):
    базу бы получить. а там и запросик будет

    База будет только после 22:00 по Москве.
    В таблице Lot обязательно «руками» поправлять, или лучше только в Operations и потом «пересчет складских количеств»?

    _________________
    Докин Сергей
    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 8:18 pm
    kupets писал(а):
    Виктор Павлов писал(а):
    Цитата:
    В конце серийного номера записываются символы x0D x0A

    Драйвер сканера глючит. При никакая ситуация не должно появляться такие символы.

    Есть вероятность, что компьютер медленой и не успевает с кодировка символов, но ничто больше как идея нет.

    И Вам Виктор доброго дня и большого здоровья!

    Уже сами разобрались. Глючит достойной памяти Утилити центр. А драйвера и нет никого. USB HID сканер. И год работал без претензий и нареканий. И компьютер достаточный INTEL i3.

    Вот что выяснили.
    Если мы просто работаем, без всяких ухищрений, то надо что сканер выдавал в конце кода CR+LF, а Утилити центр никакого не надо. Все работает.
    А вот когда на надо Cr+Lf больше, кстати у нас получилось 8 , а не 4, что курсор всегда попадал в поле партия, то в сканере Cr+Lf необходимо выключить. Иначе он прямиком попадает в поле Партия. И оператор об этом даже не догадывается. Символы то непечатаемые, на экран не выводятся.
    Но и это еще не все. Настроенный таким образом УЦ необходимо ОТКЛЮЧАТЬ, а то бывают разные смешные эффекты при простом наборе на клавиатуре.
    Это опять не все. Чтобы сделать РАСХОД/ПЕРЕМЕЩЕНИЕ таким сканером необходимо нажимать ENTER вручную, после каждого кода. Ну или в том же УЦ создаем еще один «сервер«, чтоб нажимал Ентер 1 только раз. Тут мне заметят, что в УЦ есть специальная опция «Нажимать Enter после ввода». Вроде включаем и все. Ан нет. Опять снова тут совсем.
    С этой опцией Enter нажимается 2 (два) раза. То есть считывается код, выбирается товар, переход на следующую строку и опять таблица выбора товара. (Программа Склад ПРо).
    Помогает «Включить суффикс» с одним .
    Можно сказать, что все работает, но как то уж очень криво. Как будто в России сделано
    Не знаю как девочка разберется с постоянным переключением «Серверов» в УЦ. А если еще нечаянно два запустит, то вообще Цирк.
    PS.
    А вот как теперь исправить 300 позиций с CR+LF на конце, я пока не знаю. К утру желательно поправить.
    PS.PS
    Не надо советовать, как писать запросы , подскажите как выделить двоичные (HEX) данные. В MS SQL раньше не сталкивался.

    Поправка: Лишнее значение было только 0х0D, что совсем не понятно. В сканере стояло именно Cr+Lf

    _________________
    Докин Сергей
    Заголовок сообщения: Re: Учет по серийным номерам и т.п.
    Добавлено: Чт дек 05, 2013 8:58 pm

    Microinvest

    kupets писал(а):

    В таблице Lot обязательно «руками» поправлять, или лучше только в Operations и потом «пересчет складских количеств»?

    в Operations только реляционная связь с таблицей Lots по идентификатору партии.
    Правится только Lots. Пересчёт не нужен

    Можете открыть менеджмент студио в режиме редактирования таблицы и самостоятельно урезать часть текста (будет быстрее, чем писать и отлаживать запрос для апдейта)
    300 строк = 900 секунд = 15 минут работы

    ОПИСАНИЕ

    Документация верхнего уровня о регулярных выражениях Perl находится в perlre.

    Этот документ описывает все backslash и escape последовательности. После объяснения роли обратной косой черты, перечисляются все последовательности, которые имеют специальное значение в регулярных выражениях Perl (в алфавитном порядке), затем описывается каждая из них.

    Большинство последовательностей описаны в деталях в различных документах; основная цель этого документа заключается в кратком справочном руководстве, описывающем все backslash и escape последовательности.

    Обратная косая черта (backslash)

    В регулярном выражении обратной косой чертой можно выполнить одну из двух задач: Она либо отнимает особое значение символа после него (например, \| найдет вертикальную черту, здесь это не знак или), или это начало последовательности, обратной косой черты или эскейп (backslash или escape sequence).

    Правила, определяющие, что это, довольно просты: eсли символ после обратной косой черты является знаком ASCII пунктуации (не слово) (то есть, все, что не является буквой, цифрой или подчеркивания), то обратная косая черта просто снимает любое особое значение символа, после него.

    Если символ после обратной косой черты ASCII буква или ASCII цифра, тогда последовательность может быть специальной; если это так, то она приводится ниже. Есть несколько букв, которые не используются, так что их эскейпинг косой чертой не меняет их специальности. Будущие версии Perl может назначить особый смысл для них, так что если у вас есть включенные предупреждения (use warnings), Perl выдает предупреждение, если вы используете такую последовательность. [1].

    Однако, гарантируется, что последовательности обратной косой черты или эскейп никогда не будут иметь знака препинания после обратной косой черты, ни сейчас, ни в будущих версиях Perl 5. Так что это безопасно поставить косую черту перед несловесным символом.

    Обратите внимание, что обратная косая черта является специальным символом; если вы хотите найти обратную косую черту, вы должны заэскейпить ее обратной косой чертой: /\\/ найдет одну косую черту (backslash).

    Есть одно исключение. Если вы используете алфавитно-цифровой символ как разделитель вашего шаблона (который вы, вероятно, не стоит делать по причине удобочитаемости), вы должны заэскейпить разделитель, если вы хотите найти его. Тогда Perl не будет предупреждать. Смотрите также «Подробности разбора (парсинга) конструкций в кавычках» in perlop.

    Все последовательности и эскейпы

    Тех, что не используются в пределах класса символов в квадратных скобосках (таких как [\da-z] ) помечаются как Не в [].

     \000 Восьмеричная escape-последовательность. Смотри также \o<>. \1 Абсолютная обратная ссылка. Не в []. \a Будильник или Звонок. \A Начало строки. Не в []. \b Граница слова/не-слова. (Обратный слеш в []). \B Не граница слова/не-слова. Не в []. \cX Control-X. \C Один октет, даже под UTF-8. Не в []. \d Класс символов для цифр. \D Класс символов для не-цифр. \e Символ эскейпа. \E Выключает обоработку \Q, \L и \U. Не в []. \f Перевод формата (Formfeed). \F Возвращает регистронезависимое представление (Foldcase) до \E. Не в []. \g<>, \g1 Именованная, абсолютная или относительная обратная ссылка. Не в []. \G Найдет, где остановился предыдущий m//g Позиция поиска в регекспе (Pos). Не в []. \h Класс символов для горизонтальных пробелов. \H Класс символов для не-горизонтальных пробелов. \k<>, \k<>, \k'' Именованная обратная ссылка. Не в []. \K Сохраняет найденный материал слева от \K, не включая его в $&. Не в []. \l Следующий символ в нижнем регистре. Не в []. \L Нижний регистр до \E. Не в []. \n (Логически) символ новой строки. \N Любой символ, кроме символа новой строки. Не в []. \N<> Именованный или номерной символ (Юникода) или последовательности. \o<> Восьмеричная эскейп-последовательность. \p<>, \pP Символ с данным Юникодным свойством. \P<>, \PP Символ без данного Юникодного свойства. \Q Квотирует (отключает) действие метасиволов в шаблоне до \E. Не в []. \r Символ возврата каретки. \R Универсальная новая строка (?>\v|\x0D\x0A) Не в []. \s Класс символов для пробелов. \S Класс символов для не-пробелов. \t Символ табуляции. \u Следующий символ в верхнем регистре. Не в []. \U Верхний регистр до \E. Не в []. \v Класс символов для вертикальных пробелов. \V Класс символов для не-вертикальных пробелов. \w Класс символов для слова. \W Класс символов для не-слова. \x<>, \x00 Шестнадцатеричная эскейп-последовательность. \X Найдет Юникодный расширенный графема кластер ("extended grapheme cluster"). Не в []. \z Конец строки. Не в []. \Z Конец строки. Не в [].

    Эскейп символы

    Фиксированные знаки

    У горстки знаков есть специальные эскейп символы. Следующая таблица показывает их, наряду с их кодами ASCII (в десятичном и шестнадцатиричном виде), их ASCII имя , контрол эскейп на ASCII платформах и короткое описание. (Для платформ расширенного двоично-десятичного кода (EBCDIC) см. «ОПЕРАТОР РАЗЛИЧИЯ» in perlebcdic.)

     Seq. Code Point ASCII Cntrl Description. Dec Hex \a 7 07 BEL \cG будильник или звонок. \b 8 08 BS \cH обратный слеш [1] \e 27 1B ESC \c[ символ эскейпа \f 12 0C FF \cL перевод формата \n 10 0A LF \cJ перевод строки [2] \r 13 0D CR \cM возврат каретки \t 9 09 TAB \cI табуляция

    \b это бекслешированный символ действует только внутри класса символов. Вне класс символов C это граница слово/не-слова.

    \n соответствует логической новой строке. Perl преобразует между \n и ваш ОС родной символ новой строки при чтении или записи в текстовые файлы.

    Пример
     $str =~ /\t/; # Найдет, если $str содержит (горизонтальный) символ табуляции.

    Управляющие символы (Control characters)

    \c используется для обозначения символа управления; символ следующий после \c , определяет значение конструкции. Например значение \cA chr(1) и значение \cb – chr(2) и др. Подробные детали находятся в «Regexp операторы заключения в кавычки» in perlop. Полный cписок элементов chr(1) , и т.д. средства для ASCII и EBCDIC платформ находится в «OPERATOR DIFFERENCES» in perlebcdic.

    Обратите внимание что одна \c\ в конце регулярного выражения (или в двойных кавычках) не является допустимым. Обратная косая черта должна сопровождаться другой символ. То есть, \c\X означает chr(28) . ‘X‘ для всех символов X.

    Чтобы написать платформенно независимый код необходимо использовать \NNAME> вместо этого, например \N или \N , см. charnames.

    Назначанный символ (Мнемоника): символ control.

    Пример
     $str =~ /\cK/; # Найдет, если $str содержит вертикальную табуляцию (control-K).

    Именованные или нумерованные символы и последовательности символов

    Символы Юникода имеют Юникодное имя и числовой код (порядковый). Используйте конструкцию \N<> для указания символа по одному из этих значений. Некоторые последовательности символов также имеют имена.

    Чтобы задать имя, имя символ символа или последовательности символов нужно писать между фигурными скобками.

    Чтобы указать символ с помощью Юникодного кода (Unicode code point) используйте форму \Nкод символа> , где код символа — число в шестнадцатеричной форме, которое указывает на код символа Юникода, которому в Юникоде присвоен соответствующий символ. Обычно, но не обязательно использовать нули в начале числа размером в 4 цифры. Таким образом \N означает LATIN CAPITAL LETTER A , и вы редко сможете увидеть это написание без двух ведущих нулей. \N означает «A» даже на машинах EBCDIC (где порядковое значение «A» не является 0x41).

    Возможно даже дать ваши собственные имена для символов и символьных последовательностей. Для подробностей см. charnames.

    (Есть расширение внутренней формы, которое вы можете увидеть в выводе отладки: \Nкодовая точка.кодовая точка. > . . означает любое количество этих кодовых точек, разделенных точками. Это представляет собой последовательность, образованную символами. Это только внутренняя форма, она может меняться, и вы не должны пытаться использовать ее самостоятельно).

    Mnemonic: Named character. (Именованные символы.)

    Обратите внимание, что символ или последовательность символов в виде именованного или пронумерованного символа рассматривается как символ без специального смысла для движка регекс и будет искаться «как есть».

    Например
     $str =~ /\N/; # Найдет тайский смивол SO SO use charnames 'Cyrillic'; # Загружает кириллические имена. $str =~ /\N\N/; # Найдет "ZHE" следующис за "KA".

    Восьмеричные эскейп-последовательности

    Существует две формы Восьмеричной эскейп-последовательности. Каждая используется для указания символа его кодовой точкой, указанной в восьмеричной системе счисления.

    Одна из форм доступных начиная в Perl 5.14 выглядит как \o <. >, где точки представляют собой один или несколько восьмеричных цифр. Она может использоваться для любого символа Юникода.

    Он был введен, чтобы избежать потенциальных проблем с другой формой, имеющейся в всех версия языка Перл. Эта форма состоит из косой черты за которой следуют три восьмеричные цифры. Одна из проблем с этой формой является то, что она может выглядеть так же, как старый стиль обратной ссылки (см. «Разрешение неоднозначности правил между восьмеричным написанием в старинном стиле и обратной ссылкой» («Disambiguation rules between old-style octal escapes and backreferences») ниже.) Этого можно избежать, сделав первый из трех цифр всегда ноль, но что делает \077 самой большой кодовой точкой в спецификации.

    В некоторых контекстах косая черта и два или даже одна восьмеричная цифра могут быть интерпретируется как восьмеричный эскйп символ, иногда с предупреждением и из-за некоторых ошибоки(bugs), иногда с неожиданными результатами. Кроме того если вы создаете регекс из небольших фрагментов, объединяемых вместе, и вы используете меньше, чем три цифры, начала одного фрагмента может быть истолковано как добавление цифр в окончание фрагмента перед ним. Смотрите «Абсолютные ссылки» для более подробного обсуждения и примеров фрагментов с проблемами (snippet problem).

    Обратите внимание, что символ в виде как восьмеричный эскйп символа рассматривается, как символ без особого значения в двигателе регекса и будет искаться «как есть» («as is»).

    Подводя итог, \o<> форма всегда является безопасным для использования, и другие формы безопасны для использования для кодовых точек от \077 при использовании ровно трёх цифр.

    Mnemonic: 0ctal or octal.

    Примеры (если платформа ASCII)
     $str = "Perl"; $str =~ /\o/; # Найдет, "\120" это "P". $str =~ /\120/; # Тоже. $str =~ /\o+/; # Найдет, "\120" это "P", # Это повторяется по крайней мере один раз. $str =~ /\120+/; # Тоже. $str =~ /P\053/; # Не найдет, "\053" это "+" взятый буквально. /\o/ # Черный на переднем плане, белый фон, улыбающееся лицо.(Black foreground, white background smiling face.) /\o/ # Выдает предупреждение и дает chr(4).
    Разрешение неоднозначности правил между восьмеричным написанием в старинном стиле и обратной ссылкой

    (Disambiguation rules between old-style octal escapes and backreferences)

    Восьмеричная эсйкейп-последовательность \000 формируют вне символьных скобочных классов потенциально столкновение со старым стилем обратных ссылок (см. «Абсолютные ссылки» ниже). Они оба состоят из косой черты, за которой идет число. Поэтому Perl использует эвристический подход для определения, является ли это обратной ссылкой или восьмеричный эскйеп символа. Perl использует следующие правила для однозначного определения:

    1. Если за обратной косой чертой следует одна цифра, это обратная ссылка.
    2. Если первая цифра после обратной косой черты имеет значение 0, это восьмеричный эскйеп символ.
    3. Если номер после обратной косой черты уже N (в десятичной системе) и Perl видел N групп захвата, Perl считает, что это обратная ссылка. В противном случае, он считает это Восьмеричным эскейп символом. Если N имеет более чем три цифры, Perl принимает только первые три для Восьмеричного эскейп символа; остальные совпадают, как есть.

     my $pat = "(" x 999; $pat .= "a"; $pat .= ")" x 999; /^($pat)\1000$/; # Найдет 'aa'; есть 1000 групп захвата. /^$pat\1000$/; # Найдет 'a@0'; есть 999 групп захвата # и \1000 выглядит, как \100 (a '@') и a '0'.

    Вы можете заставить интерпретировать обратную ссылку всегда с помощью \g <. >. Вы можете заставить интерпретировать восьмеричным эскейп символ с помощью формы \o <. >, или для чисел вышк \077 (= 63 десятичных), с помощью трех цифр начинающихся с «0».

    Шестнадцатеричные эскейп-последовательности

    Как в восьмеричных эскейп-последовательностях существует две формы шестнадцатеричных эскейп-последовательностей, но оба начинаются с одного и того же \x . Далее идет либо ровно две шестнадцатеричных цифры, образуя число, или шестнадцатеричное число произвольной длины в окружении фигурных скобок. Шестнадцатеричное число имеет код точки символа, который вы хотите представить.

    Обратите внимание, что символ выраженный как один из этих эскейп-символов считается символом без особого значения для движка регекс и будет искаться «как есть».

    Mnemonic: hexadecimal.

    Примеры (если платформа ASCII)
     $str = "Perl"; $str =~ /\x50/; # Match, "\x50" is "P". $str =~ /\x50+/; # Match, "\x50" is "P", it is repeated at least once $str =~ /P\x2B/; # No match, "\x2B" is "+" and taken literally. /\x\x/ # Snowman with an umbrella. # The Unicode character 2603 is a snowman, # the Unicode character 2602 is an umbrella. /\x/ # Black smiling face. /\x/ # Same, the hex digits A - F are case insensitive.

    Модификаторы

    A number of backslash sequences have to do with changing the character, or characters following them. \l will lowercase the character following it, while \u will uppercase (or, more accurately, titlecase) the character following it. They provide functionality similar to the functions lcfirst and ucfirst .

    To uppercase or lowercase several characters, one might want to use \L or \U , which will lowercase/uppercase all characters following them, until either the end of the pattern or the next occurrence of \E , whichever comes first. They provide functionality similar to what the functions lc and uc provide.

    \Q is used to quote (disable) pattern metacharacters, up to the next \E or the end of the pattern. \Q adds a backslash to any character that could have special meaning to Perl. In the ASCII range, it quotes every character that isn’t a letter, digit, or underscore. See «quotemeta» in perlfunc for details on what gets quoted for non-ASCII code points. Using this ensures that any character between \Q and \E will be matched literally, not interpreted as a metacharacter by the regex engine.

    \F can be used to casefold all characters following, up to the next \E or the end of the pattern. It provides the functionality similar to the fc function.

    Mnemonic: Lowercase, Uppercase, Fold-case, Quotemeta, End.

    Examples
     $sid = "sid"; $greg = "GrEg"; $miranda = "(Miranda)"; $str =~ /\u$sid/; # Matches 'Sid' $str =~ /\L$greg/; # Matches 'greg' $str =~ /\Q$miranda\E/; # Matches '(Miranda)', as if the pattern # had been written as /\(Miranda\)/

    Character classes

    Perl regular expressions have a large range of character classes. Some of the character classes are written as a backslash sequence. We will briefly discuss those here; full details of character classes can be found in perlrecharclass.

    \w is a character class that matches any single word character (letters, digits, Unicode marks, and connector punctuation (like the underscore)). \d is a character class that matches any decimal digit, while the character class \s matches any whitespace character. New in perl 5.10.0 are the classes \h and \v which match horizontal and vertical whitespace characters.

    The exact set of characters matched by \d , \s , and \w varies depending on various pragma and regular expression modifiers. It is possible to restrict the match to the ASCII range by using the /a regular expression modifier. See perlrecharclass.

    The uppercase variants ( \W , \D , \S , \H , and \V ) are character classes that match, respectively, any character that isn’t a word character, digit, whitespace, horizontal whitespace, or vertical whitespace.

    Mnemonics: word, digit, space, horizontal, vertical.

    Unicode classes

    \pP (where P is a single letter) and \p are used to match a character that matches the given Unicode property; properties include things like «letter», or «thai character». Capitalizing the sequence to \PP and \P make the sequence match a character that doesn’t match the given Unicode property. For more details, see «Backslash sequences» in perlrecharclass and «Unicode Character Properties» in perlunicode.

    Mnemonic: property.

    Referencing

    If capturing parenthesis are used in a regular expression, we can refer to the part of the source string that was matched, and match exactly the same thing. There are three ways of referring to such backreference: absolutely, relatively, and by name.

    Absolute referencing

    Either \gN (starting in Perl 5.10.0), or \N (old-style) where N is a positive (unsigned) decimal number of any length is an absolute reference to a capturing group.

    N refers to the Nth set of parentheses, so \gN refers to whatever has been matched by that set of parentheses. Thus \g1 refers to the first capture group in the regex.

    The \gN form can be equivalently written as \gN> which avoids ambiguity when building a regex by concatenating shorter strings. Otherwise if you had a regex qr/$a$b/ , and $a contained «\g1» , and $b contained «37» , you would get /\g137/ which is probably not what you intended.

    In the \N form, N must not begin with a «0», and there must be at least N capturing groups, or else N is considered an octal escape (but something like \18 is the same as \0018 ; that is, the octal escape «\001» followed by a literal digit «8» ).

    Mnemonic: group.

    Examples
     /(\w+) \g1/; # Finds a duplicated word, (e.g. "cat cat"). /(\w+) \1/; # Same thing; written old-style. /(.)(.)\g2\g1/; # Match a four letter palindrome (e.g. "ABBA").

    Relative referencing

    \g-N (starting in Perl 5.10.0) is used for relative addressing. (It can be written as \gN .) It refers to the Nth group before the \gN> .

    The big advantage of this form is that it makes it much easier to write patterns with references that can be interpolated in larger patterns, even if the larger pattern also contains capture groups.

    Examples
     /(A) # Group 1 ( # Group 2 (B) # Group 3 \g # Refers to group 3 (B) \g # Refers to group 1 (A) ) /x; # Matches "ABBA". my $qr = qr /(.)(.)\g\g/; # Matches 'abab', 'cdcd', etc. /$qr$qr/ # Matches 'ababcdcd'.

    Named referencing

    \gname> (starting in Perl 5.10.0) can be used to back refer to a named capture group, dispensing completely with having to think about capture buffer positions.

    To be compatible with .Net regular expressions, \g may also be written as \k , \k or \k’name’ .

    To prevent any ambiguity, name must not start with a digit nor contain a hyphen.

    Examples
     /(?\w+) \g/ # Finds duplicated word, (e.g. "cat cat") /(?\w+) \k/ # Same. /(?\w+) \k/ # Same. /(?.)(?.)\g\g/ # Match a four letter palindrome (e.g. "ABBA")

    Assertions

    Assertions are conditions that have to be true; they don’t actually match parts of the substring. There are six assertions that are written as backslash sequences.

    \A only matches at the beginning of the string. If the /m modifier isn’t used, then /\A/ is equivalent to /^/ . However, if the /m modifier is used, then /^/ matches internal newlines, but the meaning of /\A/ isn’t changed by the /m modifier. \A matches at the beginning of the string regardless whether the /m modifier is used.

    \z and \Z match at the end of the string. If the /m modifier isn’t used, then /\Z/ is equivalent to /$/ ; that is, it matches at the end of the string, or one before the newline at the end of the string. If the /m modifier is used, then /$/ matches at internal newlines, but the meaning of /\Z/ isn’t changed by the /m modifier. \Z matches at the end of the string (or just before a trailing newline) regardless whether the /m modifier is used.

    \z is just like \Z , except that it does not match before a trailing newline. \z matches at the end of the string only, regardless of the modifiers used, and not just before a newline. It is how to anchor the match to the true end of the string under all conditions.

    \G is usually used only in combination with the /g modifier. If the /g modifier is used and the match is done in scalar context, Perl remembers where in the source string the last match ended, and the next time, it will start the match from where it ended the previous time.

    \G matches the point where the previous match on that string ended, or the beginning of that string if there was no previous match.

    Mnemonic: Global.

    \b matches at any place between a word and a non-word character; \B matches at any place between characters where \b doesn’t match. \b and \B assume there’s a non-word character before the beginning and after the end of the source string; so \b will match at the beginning (or end) of the source string if the source string begins (or ends) with a word character. Otherwise, \B will match.

    Do not use something like \b=head\d\b and expect it to match the beginning of a line. It can’t, because for there to be a boundary before the non-word «=», there must be a word character immediately previous. All boundary determinations look for word characters alone, not for non-words characters nor for string ends. It may help to understand how and work by equating them as follows:

     \b really means (?:(?<=\w)(?!\w)|(?

    Mnemonic: boundary.

    Examples
     "cat" =~ /\Acat/; # Match. "cat" =~ /cat\Z/; # Match. "cat\n" =~ /cat\Z/; # Match. "cat\n" =~ /cat\z/; # No match. "cat" =~ /\bcat\b/; # Matches. "cats" =~ /\bcat\b/; # No match. "cat" =~ /\bcat\B/; # No match. "cats" =~ /\bcat\B/; # Match. while ("cat dog" =~ /(\w+)/g) < print $1; # Prints 'catdog' >while ("cat dog" =~ /\G(\w+)/g)

    Misc

    Here we document the backslash sequences that don't fall in one of the categories above. These are:

    \C always matches a single octet, even if the source string is encoded in UTF-8 format, and the character to be matched is a multi-octet character. This is very dangerous, because it violates the logical character abstraction and can cause UTF-8 sequences to become malformed.

    Mnemonic: oCtet.

    This appeared in perl 5.10.0. Anything matched left of \K is not included in $& , and will not be replaced if the pattern is used in a substitution. This lets you write s/PAT1 \K PAT2/REPL/x instead of s/(PAT1) PAT2/$REPL/x or s/(?<=PAT1) PAT2/REPL/x .

    Mnemonic: Keep.

    This feature, available starting in v5.12, matches any character that is not a newline. It is a short-hand for writing [^\n] , and is identical to the . metasymbol, except under the /s flag, which changes the meaning of . , but not \N .

    Mnemonic: Complement of \n.

    \R matches a generic newline; that is, anything considered a linebreak sequence by Unicode. This includes all characters matched by \v (vertical whitespace), and the multi character sequence "\x0D\x0A" (carriage return followed by a line feed, sometimes called the network newline; it's the end of line sequence used in Microsoft text files opened in binary mode). \R is equivalent to (?>\x0D\x0A|\v) . (The reason it doesn't backtrack is that the sequence is considered inseparable. That means that

     "\x0D\x0A" =~ /^\R\x0A$/ # No match

    fails, because the \R matches the entire string, and won't backtrack to match just the "\x0D" .) Since \R can match a sequence of more than one character, it cannot be put inside a bracketed character class; /[\R]/ is an error; use \v instead. \R was introduced in perl 5.10.0.

    Note that this does not respect any locale that might be in effect; it matches according to the platform's native character set.

    Mnemonic: none really. \R was picked because PCRE already uses \R , and more importantly because Unicode recommends such a regular expression metacharacter, and suggests \R as its notation.

    This matches a Unicode extended grapheme cluster.

    \X matches quite well what normal (non-Unicode-programmer) usage would consider a single character. As an example, consider a G with some sort of diacritic mark, such as an arrow. There is no such single character in Unicode, but one can be composed by using a G followed by a Unicode "COMBINING UPWARDS ARROW BELOW", and would be displayed by Unicode-aware software as if it were a single character.

    Mnemonic: eXtended Unicode character.

    Examples
     "\x" =~ /^\C\C$/; # Match as chr (0x256) takes # 2 octets in UTF-8. $str =~ s/foo\Kbar/baz/g; # Change any 'bar' following a 'foo' to 'baz' $str =~ s/(.)\K\g1//g; # Delete duplicated characters. "\n" =~ /^\R$/; # Match, \n is a generic newline. "\r" =~ /^\R$/; # Match, \r is a generic newline. "\r\n" =~ /^\R$/; # Match, \r\n is a generic newline. "P\x" =~ /^\X$/ # \X matches a P with a dot above.

    ПЕРЕВОДЧИКИ

    • Николай Мишин
    Module Install Instructions

    To install POD2::RU, copy and paste the appropriate command in to your terminal.

    cpanm POD2::RU
    perl -MCPAN -e shell install POD2::RU

    For more information on module installation, please visit the detailed CPAN module installation guide.

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *