Вход
Приветствую Вас Гость
 

easy.math.qsp v. 3.1.0

Операции с текстом

em.zero

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

 args[0] - количество генерируемых групп (только число)
$args[1] - какие символы должны присутствовать в строке. По умолчанию '0'. Только текстовое значение.

Если написать в $args[1] не один символ а группу, будет сгенерирована строка из  args[0] повторяющихся групп символов.

Результат работы функции:
@em.zero(13) & !@ '0000000000000'
@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 & !@ 'вЗНзГШмf'
@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] - у всех значений, обнаруженных между разделителями, будут отсечены прилегающие пробелы.
Примеры использования:

Посмотрим на выборку строк по разным разделителям на примере одного текста. Текст помещаем в переменную для удобства записи:

$text="Адское Пекло и Небеса -
Я весь мир мечтаю продать.
Время - деньги. Пусть стрелки бегут на часах -
И мне нечего больше желать."

Разбиваем на строки по символу переноса строки:

@em.str.inArr($text,'$mass','
'
,'')

Результат:

$mass[0]='Адское Пекло и Небеса -'
$mass[1]='Я весь мир мечтаю продать.'
$mass[2]='Время - деньги. Пусть стрелки бегут на часах -'
$mass[3]='И мне нечего больше желать.'

Разбиваем на строки по пробелу:

@em.str.inArr($text,'$mass',' ','')

Результат (Заметьте, что символ переноса строки в этом случае попадает в результирующие строки. Туда же попадают знаки препинания и прочее):

$mass[0]='Адское'
$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.inArr($text,'$mass','("|!|\?|-|,|;|:|\.| |
)'
,'[notspace] [regular] [lcase]')

Результат:

$mass[0]='адское'
$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] — в каждой строке отсекаются прилегающие пробелы.

Пример работы:

Для удобства помещаем текст в переменную:

$text="    
   
   первая строка 1    
вторая строка 2
   
  третья строка
   
       "

Результат расширенного отсечения:

@em.str.widetrim($text)=
"   первая строка 1    
вторая строка 2
   
  третья строка"

Результат отсечения символов преформатирования:

@em.str.widetrim($text,'[strip]')=
"первая строка 1
вторая строка 2

третья строка"

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

em.str.thin

Предназначение этой функции разрежать строку. Через определённое количество символов в строку вставляются разделители.

$args[0] - строка, текст;
 args[1] - через какое количество символов вставлять разделитель. По умолчанию разделитель вставляется через каждый один символ;
$args[2] - разделитель. По умолчанию символ пробела;
$args[3] - управление:
  • [up] - разрежает текст от последнего символа к первому;
  • [right] - добавляет разделитель в конце разрежаемой строки;
  • [left] - добавляет разделитель перед разрежаемой строкой.
Примеры:
@em.str.thin('профессура') & !@ "п р о ф е с с у р а"
@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. Если указать отрицательное значение, будет взят символ от конца строки.
Примеры:
@em.str.slice('abcdefg')
!@ "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-подобный набор символов, который можно использовать как уникальный идентификатор. Поскольку используется генератор псевдослучайных чисел, вероятность повторения есть, но она мала.

без аргументов
Результаты работы функции:
00ae0330-ce2d-9236-ca92-6b96134d320a
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-

Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-

Наверх