По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Чтобы начать наше знакомство с регулярными выражениями, давайте взглянем на них поближе. Регулярные выражения являются шаблоном, который выполняет сравнение последовательности текста слева направо. Выражние "регулярные выражения" используют не очень часто, чаще всего применяют "regex" либо "regexp". В общем и целом, регулярные выражения предназначены для изменения текста в строке, а также они выполняют проверку некоторых форм, и т.д. К примеру, у вас в разработке ведется некое приложение, и вам понадобилось выявить какие-то правила, по которым юзер уже будет выбирать собственное наименование. Важным условием будет ограничение в количестве символов и написании самого имени, которое должно состоять из букв, цифр, дефиса и нижнего подчеркивания. Для того, чтобы решить данную задачу, можно воспользоваться представленным ниже решением: john_doe; jo-hn_doe; john12_as. Но если наименование юзера будет состоять из прописной буквы, например Jo, то оно никак не будет соответствовать данному условию. Основные совпадения Регулярные выражения являются шаблоном, который состоит из неких символов, с помощью которого разработчики выполняют поиск в тексте. К примеру, условие "The" будет означать букву "t", за которой идет "h", затем - "e". "the" => The fat cat sat onthemat. Метасимволы Строительными блоками регулярных выражений являются метасимволы, которые являются независимыми, и обычно используются любыми способами. Некоторое количество из них могут иметь особое предназначение, поэтому они выделяются квадратными скобками. Ниже вы можете ознакомиться с метасимволами. Метасимволы Описание . Любой единичный символ, исключая новую строку. [ ] Поиск набора символов, помещенных в скобки. [^ ] Отрицательный класс символов. Соответствует любому символу, не заключенному в квадратные скобки. * 0 или больше повторений предшествующего символа. + 1 или больше повторений предшествующего символа. ? Делает предшествующий символ опциональным. {n,m} Возвращает как минимум "n", но не более "m" повторений предшествующего символа. (xyz) Находит группу символа в строго заданном порядке. | Разделяет допустимые варианты. Исключает следующий символ. Позволяет искать служебные символы [ ] ( ) { } . * + ? ^ $ | ^ Находит начало введенной строки. $ Находит конец введенной строки. Сокращения для обозначения символов В регулярных выражениях также существуют некоторые сокращения для символов, что в несколько раз повышает комфортность при работе. Ниже приведен список сокращений: Сокращение Описание . Любой символ, кроме новой строки w Соответствует буквенно-цифровым символам: [a-zA-Z0-9_] W Соответствует не буквенно-цифровым символам: [^w] d Соответствует цифрам: [0-9] D Соответствует нецифровым знакам: [^d] s Соответствует знаку пробела: [ f p{Z}] S Соответствует символам без пробела: [^s] Look Around Позиционная проверка Look Around представляет собой набор некоторых групп, которые предназначены для поиска в тексте, но сами в него не входят. Позиционная проверка используется в том случае, если в определенном условии существует шаблон, который либо предшествует, либо идет следующим. Символ Описание ?= Положительный Lookahead ?! Отрицательный Lookahead ?<= Положительный Lookbehind ? Отрицательный Lookbehind Флаги Флаги также часто называют модификаторами, так как они могут изменять выходные данные регулярного выражения. Флаги ниже являются неотъемлемой частью и могут использоваться в любом порядке или комбинации регулярных выражений. Флаг Описание i Нечувствительность к регистру: делает выражение нечувствительным к регистру. g Глобальный поиск: поиск шаблона во всей строке ввода. m Многострочность: анкер метасимвола работает в каждой строке. Жадные vs. ленивые выражения По умолчанию регулярные выражения выполняются благодаря "жадным" квантификаторам, им соответствует максимально длинная строка из всех возможных. "/(.*at)/" => The fat cat sat on the mat. Чтобы получить "ленивое" выражение, нужно использовать знак "?". Так будет получена максимально короткая строка. "/(.*?at)/" => The fat cat sat on the mat.
img
NTFS - это система хранения файлов, стандартная для компьютеров Windows, но системы Linux также используют ее для организации данных. Большинство систем Linux монтируют диски автоматически. Однако в конфигурациях с двойной загрузкой, где требуется обмен файлами между двумя системами с разделами NTFS, эта процедура выполняется вручную. Эта статья покажет вам, как смонтировать раздел NTFS в Linux с разрешениями только для чтения или чтения и записи. Смонтировать раздел NTFS с разрешением только для чтения Выполните следующие действия, чтобы смонтировать раздел NTFS с доступом только для чтения. Примечание. Раздел только для чтения позволяет пользователям читать файлы. Чтобы включить запись в раздел NTFS, обратитесь ко второму разделу статьи. Определить раздел NTFS Перед монтированием раздела NTFS определите его с помощью команды parted: sudo parted -l В приведенном выше примере два раздела NTFS находятся на диске /dev/sdb. Прежде чем продолжить, запишите номер раздела, который вы хотите смонтировать. Вы также можете использовать команды fdisk и grep, чтобы показать на диске только разделы NTFS: sudo fdisk -l | grep NTFS Создать точку монтирования и смонтировать раздел NTFS В этом примере мы смонтируем раздел /dev/sdb1 с разрешением только для чтения. Сначала создайте точку монтирования с помощью команды mkdir: sudo mkdir /mnt/ntfs1 Затем смонтируйте раздел в созданный вами каталог. Используйте команду mount и путь к разделу, который вы указали ранее: sudo mount -t ntfs /dev/sdb1 /mnt/ntfs1 Используйте инструмент для освобождения диска, чтобы проверить подробную информацию обо всех файловых системах и убедиться, что вы успешно смонтировали раздел: df -hT Раздел /dev/sdb1 отображается как смонтированный в нижней части списка. Теперь у вас есть доступ только для чтения к этому разделу NTFS. Смонтировать раздел NTFS с разрешениями на чтение и запись Чтобы смонтировать раздел NTFS с разрешениями на чтение и запись, вам необходимо установить fuse и ntfs-3 в вашей системе. Выполните следующие действия, чтобы завершить процесс монтирования. Примечание. В некоторых дистрибутивах Linux по умолчанию уже установлены fuse и ntfs-3g. Обновить репозитории пакетов Выполните следующую команду, чтобы загрузить и обновить репозитории пакетов: sudo apt update Установите Fuse и ntfs-3g Чтобы установить fuse в вашей системе Linux из репозитория по умолчанию, используйте соответствующий менеджер пакетов. В нашем примере мы используем apt в Ubuntu. sudo apt install fuse Когда установка завершится, установите ntfs-3g, запустив: sudo apt install ntfs-3g В случае, если fuse и ntfs-3g уже установлены, вывод выглядит примерно так, как показано ниже: Смонтировать раздел NTFS После установки пакетов программного обеспечения fuse и ntfs-3g смонтируйте раздел NTFS. Сначала создайте точку монтирования с помощью команды mkdir: sudo mkdir /mnt/ntfs2 Затем используйте команду mount, чтобы смонтировать нужный раздел. Например, /dev/sdb2: sudo mount -t ntfs-3g /dev/sdb2 /mnt/ntfs2/ Чтобы проверить, смонтирован ли раздел, выполните команду df: df -hT Теперь у вас есть права на чтение и запись для подключенного раздела NTFS. Примечание. Для монтирования раздела через ntfs-3g рекомендуется ядро Linux версии 2.6.20 или новее.
img
В данной статье будет рассмотрен самый быстрый и удобный способ создания нового экстеншена на FreePBX 13 и последующей регистрацией его на SIP-телефоне Yealink SIP-T21P E2. Пошаговое видео Настройка Интерфейс серьезно изменился по сравнению с предыдущей версией, в частности, теперь есть разбивка по типам экстеншенов, и, главное – появился инструмент быстрого создания экстеншенов. Как видно на скриншоте выше, теперь есть следующие поля: All Extensions Custom Extensions DAHDi Extenstions и пр. типы экстеншенов – PJSIP, CHANSIP и т.д. Ниже находится кнопка добавления экстеншена и, самое важное, кнопка быстрого добавления экстеншена (Quick Create Extension). При нажатии на неё появится окно быстрого добавления (скриншот ниже). Как видно, первые несколько полей, которые должны быть заполнены: Type – для наших целей выбираем Chan_SIP Extension Number – соответственно номер экстеншена в соответствии с планом нумерации Display Name – имя экстеншена, которое будет отображаться на экстеншене Outbound Caller ID – данное поле оставляем пустым, опция форсированной установки требуемого Caller ID при исходящем вызове. Если поле оставить пустым, то будет устанавливаться Caller ID указанный в настройках транка. Email Address – электронный почтовый адрес, если его указать, то может пригодиться при последующей настройке факса. Далее необходимо нажать Next и появляется окно со вторым шагом настройки: Здесь предлагаются следующие настройки: Find Me / Follow Me – опция FMDM позволяет перенаправить звонок с данного экстеншена на другое направление, к примеру экстеншен звонит 7 секунд, а после начинает звонить мобильный телефон сотрудника. Возможны различные сценарии. Create User Manager User – данную опцию можно включить для автоматического создания пользователя, проассоциированного с этим экстеншеном, но так же просто его создать после в опциях экстеншена Enable Voicemail – активировать голосовую почту для экстеншена и обозначить пароль (PIN) для голосовой почты Если перейти обратно в Applications – Extensions, и выбрать поле All Extensions или CHAN_SIP, выбрать экстеншен, который был создан нами в предыдущем шаге и нажать на кнопку редактирования, то появится следующее окно: Как видно, здесь указаны такие параметры как: Используемая технология и её порт (в случае CHAN_SIP) – 5061 Имя экстеншена Автоматически сгенерированный пароль Настройки User Manager – на скриншоте был создан пользователь test, подключенный к экстеншену 6996 и пароль для него. На этом настройка экстеншена закончена – необходимо скопировать пароль для экстеншена в буфер обмена, нажать кнопку Submit и затем Apply Config. Настройка Yealink SIP-T21P E2 Переходим к настройке телефона Yealink SIP-T21P E2: Необходимо попасть на веб-интерфейс телефона, для чего нужно ввести его адрес (к примеру, 192.168.1.5) и далее появится окно авторизации : После логина, необходимо нажать на кнопку «Аккаунт» Далее необходимо отметить опцию «Аккаунт» → «Включено», ввести лейбл (ярлык), отображаемое имя и имя регистрации (номер экстеншена). Имя пользователя можно оставить пустым, а можно продублировать значение «Имя регистрации». В качестве пароля используем автоматически сгенерированную строку Secret, которую вставляем в это поле. После этого обозначается адрес SIP-сервера и порт (в нашем случае - 5061). На этом настройка заканчивается, необходимо нажать «Сохранить» и телефон должен зарегистрироваться и начать работать.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59