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