easy.math.qsp v. 3.1.0
Операции с текстом
em.zero
Функция предназначена для генерации строки из повторяющихся групп символов.
args[ - количество генерируемых групп (только число)
0]$args[ - какие символы должны присутствовать в строке. По умолчанию 1]'0'. Только текстовое значение.
Если написать в $args[ не один символ а группу, будет сгенерирована строка из 1] args[ повторяющихся групп символов.0]
Результат работы функции:
@em.zero(13,'1') & !@ '1111111111111'
@em.zero(13,'10') & !@ '10101010101010101010101010'
@em.zero(13,'a') & !@ 'aaaaaaaaaaaaa'
@em.zero(3,'bla') & !@ 'blablabla'
em.str.random
Функция получает строку случайных символов
args[0] - необходимая длина строки. Если не задана, выбирается случайным образом от 1 до 8 символов. Только число
$args[1] - символы, которых не должно быть в строке, либо управляющая конструкция:
[include]или[inc]- указывает, что нужно включить в набор только указанные предопределённые группы символов. Для указания групп используются дополнительные команды:[\d]- включить цифры[\h]- включить шестнадцатеричные цифры[\s]- включить пробел и символ табуляции[\w]- включить буквы, цифры и символ подчёркивания (в т.ч. кириллица)[\я]- включить кириллические символы[\z]- включить латинские символы[\all]- все выше перечисленные наборы символов
[inc][\d][\z]- цифры и латинские буквы.
Дополнительно с этим можно использовать трансляцию регистра:[lcase]- перевести все символы в нижний регистр (только для букв)[ucase]- перевести все символы в верхний регистр (только для букв)
[only this]или[ot]- указывает, что в набор нужно включить только символы, перечисленные в $args[2]
$args[2] - символы, стоящие здесь, напротив включаются в строку (например, можно добавить пробел к стандартному набору символов, или символ табуляции). Только текст.
Результат работы функции:
@em.str.random(16,'[inc][\d][\z][\я]') & !@ 'у1ЭAXВ6чГVЫДJМxD'
@em.str.random(16) & !@ '"i!TОж5wПЬрYхв#а'
@em.str.random(16,'[inc][\d][\z][\я]','$ @ !') & !@ 'cл4фYЛ7@EnoiЪm А'
@em.str.random(16,'24680',' ©') & !@ 'f!с/ Xsэu\ZlcХ"u'
@em.str.random & !@ ' c}fjрIЩB'
@em.str.random(16,'[inc][\d][\z][\я]') & !@ 'БxПxуИЧаgрsмщю9д'
@em.str.random(16) & !@ ',5яN}BВPсИ>kJlw['
@em.str.random(16,'[inc][\d][\z][\я]','$ @ !') & !@ '@rtwЪnЦFЩиВлМяf'
@em.str.random(16,'2 4 6 8 0',' ©') & !@ 'Q©)ь©gЪ*Вл<С@ррх'
em.arr.search
Находит позицию элемента в массиве, содержащего регулярное выражение, либо возвращает -1
$args[ - имя массива
0]$args[ - регулярное выражение
1]$args[ - 2][first] или [last] - первая или последняя позиция
args[, 3]args[ - с какого по какой элемент проводить поиск
4]
Функция использует arrcomp, однако, в отличие от arrcomp, находит элемент, который содержит строку, соответствующую регулярному выражению, а не тот элемент, который полностью соответствует регулярному выражению.
При больших размерах массива (более 1000 элементов на core-i5/x64/2,5 ГГц/8 Гб RAM), функция может заметно подвешивать плеер.
em.str.inArr
Из переданного блока текста выбираются строки, находящиеся между разделителями, в том числе строка до первого разделителя и после последнего. В качестве разделителя можно задать что угодно: символ, слово, строку. Для того, чтобы задать несколько разделителей, или неявный разделитель (шаблон разделителя. Например, html-тег), можно использовать регулярные выражения.
$args[ - отрывок текста, который нужно разбить на строки
0]$args[ - имя массива, в который нужно поместить полученные строки
1]$args[ - разделитель, по которому нужно произвести выборку строк.
2]$args[ - дополнительные опции (можно комбинировать, записав через пробел):
3]
[trim]- если строка до первого разделителя и/или строка после последнего разделителя окажутся пустыми, они не будут добавлены в массив,[notspace]- будут проигнорированы все пустые строки между разделителями,[left]- сохранить в результирующей строке (строке, помещённой в массив) разделитель, поместив его слева (в начале строки),[right]- сохранить в результирующей строке (строке, помещённой в массив) разделитель, поместив его справа (в конце строки),[regular]- указанный в$args[разделитель считается регулярным выражением. При использовании этой опции, опции2][left]и[right]не работают.[ucase]- все результирующие строки будут приведены к верхнему регистру. Имеет приоритет перед[lcase]. Не влияет на разделители.[lcase]- все результирующие строки будут приведены к нижнему регистру. Не влияет на разделители.[strip]- у всех значений, обнаруженных между разделителями, будут отсечены прилегающие пробелы.
Примеры использования:
Посмотрим на выборку строк по разным разделителям на примере одного текста. Текст помещаем в переменную для удобства записи:
Я весь мир мечтаю продать.
Время - деньги. Пусть стрелки бегут на часах -
И мне нечего больше желать."
Разбиваем на строки по символу переноса строки:
','')
Результат:
$mass[1]='Я весь мир мечтаю продать.'
$mass[2]='Время - деньги. Пусть стрелки бегут на часах -'
$mass[3]='И мне нечего больше желать.'
Разбиваем на строки по пробелу:
Результат (Заметьте, что символ переноса строки в этом случае попадает в результирующие строки. Туда же попадают знаки препинания и прочее):
$mass[1]='Пекло'
$mass[2]='и'
$mass[3]='Небеса'
$mass[4]='-
Я'
$mass[5]='весь'
$mass[6]='мир'
$mass[7]='мечтаю'
$mass[8]='продать.
Время'
$mass[9]='-'
$mass[10]='деньги.'
$mass[11]='Пусть'
$mass[12]='стрелки'
$mass[13]='бегут'
$mass[14]='на'
$mass[15]='часах'
$mass[16]='-
И'
$mass[17]='мне'
$mass[18]='нечего'
$mass[19]='больше'
$mass[20]='желать.'
А вот пример выборки по нескольким разделителям с игнорированием пустых строк. Из текста будут выбраны исключительно слова:
)','[notspace] [regular] [lcase]')
Результат:
$mass[1]='пекло'
$mass[2]='и'
$mass[3]='небеса'
$mass[4]='я'
$mass[5]='весь'
$mass[6]='мир'
$mass[7]='мечтаю'
$mass[8]='продать'
$mass[9]='время'
$mass[10]='деньги'
$mass[11]='пусть'
$mass[12]='стрелки'
$mass[13]='бегут'
$mass[14]='на'
$mass[15]='часах'
$mass[16]='и'
$mass[17]='мне'
$mass[18]='нечего'
$mass[19]='больше'
$mass[20]='желать'
em.str.widetrim
Функция похожа на функцию TRIM. Она удаляет прилегающие символы пробелов, табуляций и переводов строк. Так же функция позволяет убирать все символы преформатирования из текста.
$args[ - обрабатываемый текст
0]$args[ - управляющее слово: 1][strip] — в каждой строке отсекаются прилегающие пробелы.
Пример работы:
Для удобства помещаем текст в переменную:
первая строка 1
вторая строка 2
третья строка
"
Результат расширенного отсечения:
" первая строка 1
вторая строка 2
третья строка"
Результат отсечения символов преформатирования:
"первая строка 1
вторая строка 2
третья строка"
В последнем случае остекаются не только пробелы и символы табуляции перед строками, но и в конце.
em.str.thin
Предназначение этой функции разрежать строку. Через определённое количество символов в строку вставляются разделители.
$args[0] - строка, текст;
args[1] - через какое количество символов вставлять разделитель. По умолчанию разделитель вставляется через каждый один символ;
$args[2] - разделитель. По умолчанию символ пробела;
$args[3] - управление:
[up]- разрежает текст от последнего символа к первому;[right]- добавляет разделитель в конце разрежаемой строки;[left]- добавляет разделитель перед разрежаемой строкой.
Примеры:
@em.str.thin('профессура',1,'|') & !@ "п|р|о|ф|е|с|с|у|р|а"
@em.str.thin('профессура',1,'|','[right]') & !@ "п|р|о|ф|е|с|с|у|р|а"
@em.str.thin('профессура',1,'|','[left]') & !@ "п|р|о|ф|е|с|с|у|р|а"
@em.str.thin('профессура',1,'|','[right][left]') & !@ "п|р|о|ф|е|с|с|у|р|а"
@em.str.thin('профессура',3,'|') & !@ "про|фес|сур|а"
@em.str.thin('профессура',3,'|','[up]') & !@ "п|роф|есс|ура"
@em.str.thin('профессура',3,'|','[left]') & !@ "|про|фес|сур|а"
@em.str.thin('профессура',2,'|','[right]') & !@ "пр|оф|ес|су|ра|"
@em.str.thin('профессура',1,'||','[left] [right]') & !@ "||п||р||о||ф||е||с||с||у||р||а||"
em.str.slice
Функция расширяет возможности $mid, позволяя указывать номера символов: с какого по какой вырезать из строки. Можно указывать отрицательные номера, тогда они считаются от конца строки.
$args[0] - строка, текст;
args[1] - номер, с какого символа начать вырезать строку. По умолчанию — 2. Если указать отрицательное значение, будет взят символ от конца строки;
args[2] - номер, до какого символа вырезать строку. По умолчанию — -2. Если указать отрицательное значение, будет взят символ от конца строки.
Примеры:
!@ "bcdef"
@em.str.slice('abcdefghijklmnopqrstuvwxyz', -4, -1)
!@ "wxyz"
@em.str.slice('abcdefghijklmnopqrstuvwxyz', 15, 19)
!@ "opqrs"
@em.str.slice('abcdefghijklmnopqrstuvwxyz', 10, -10)
!@ "jklmnopq"
em.gen_uuid
Функция генерирует UUID-подобный набор символов, который можно использовать как уникальный идентификатор. Поскольку используется генератор псевдослучайных чисел, вероятность повторения есть, но она мала.
Результаты работы функции:
51b14bd1-6c5e-2dfc-e788-a8726e996534
6c826bbc-ca3c-d52a-c2c8-42b6c9b6edae
542e75fc-db90-dd20-1597-c3d3c9922797
5372fd62-0e74-539e-955e-c87680cc8083
b5f2f11d-af6c-783e-c58c-1c0c1048365f
36d5998b-5656-d260-8da3-e108cf86a71b
43d9d164-980f-83c3-7c36-3266f64475c9
c2e6199a-e87b-2654-af22-cb583612d69b
3f8d9602-e8c8-6df4-c29b-82d1795c8b31
Aleks Versus'Easy Libraries'2013-2025
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2025
