Новые книги

Книга предназначена для читателей, знакомых с понятием финансовых рынков, практикующих трейдеров, индивидуальных инвесторов и управляющих инвестиционными портфелями. Она является, по сути, конспективным изложением 12 книг в одной. 12 известных мастеров-практиков написали по одной главе в этот сборник с целью дать представление читателю о своих методах и техниках работы на финансовых рынках, а именно, на рынках акций, валют (FOREX), облигаций, опционов и фьючерсов. Оценив изюминку метода и возможные граничные условия, читатель может перейти к углубленному изучению работ конкретного автора. Из участников сборника, в русском переводе есть только четыре автора. Работы других, несмотря на их известность в США, практически неизвестны российскому читателю, хотя их методики поистине уникальны, а иногда и революционны. В книге приведено множество реальных примеров, позволяющих оценить эффективность предлагаемых подходов.

Для финансистов, инвестиционных стратегов, технических аналитиков рынка, а также индивидуальных инвесторов, самостоятельно выходящих на финансовые рынки мира и России, чтение этой книги будет чрезвычайно полезным, а может быть и просто необходимым.
Социальная сеть ВКонтакте является самой крупной сетью в России. Ежедневная посещаемость достигла 55 млн пользователей в сутки и сравнялась с крупнейшими поисковыми системами. О том, как продвигать свой бизнес в этой социальной сети расскажет эта книга. Вы узнаете секреты эффективного создания сообщества, фишки по его позиционированию в сети и попадания в первые позиции при его поиске. На– учитесь создавать много продающего контента.

На страницах этого издания предложены, пожалуй, все возможные стратегии про– движения вашей страницы/группы как внутри самой сети ВКонтакте, так и, что важно, если у вас нет сайта в «большом» Интернете.

Все советы являются итогом многолетнего практического опыта автора.

Материал составлен по формуле «читай и делай».

Регулярные Выражения

 

Регулярные Выражения

Регулярные выражения используются для сложного манипулирования строками в PHP/FI. Поддержка интерфейса между скриптом и регулярными выражениями осуществляется через следующие функции: Reg_Match(), Reg_Replace(), и Reg_Search(). Первым аргументом для всех трех функций - это строка, задающая регулярное выражение. Этот строка состоит из регулярных и специальных символов. Регулярные символы имеют то же значение что и при в других командах Unix, в то время как специальные символы имеют специальное значение. Далее следуюет - полный список специальных символов и их значения как это воспринимает синтаксический анализатор PHP/FI:

`.'

Является специальным символом, который соответствует любому символу, за исключением символа новой строки. Используя конкатенацию, мы можем задавать регулярные выражения подобно 'a.b', которое соответствует любой трех-символьной строке, которая начинается с 'a' и заканчивается 'b'.

`*'

Сам по себе это не конструкция; это - суффикс, который означает, что предшествующее регулярное выражение, может быть повторено сколь угодно много раз. В строке "fo*", символ "*" применяется к символу "o', так "fo*" задает "f" с последующим любым количеством символов "o".

В случае нулевого количества символов "o" строка "fo*" будет также соответствовать "f".

Символ "*" Всегда применяет к *наименьшему* возможному предшествующему выражению. Таким образом, "fo*" задает повторение "o", а не повторение "fo".

Процесс сравненияr обрабатывает конструкцию "*", пытаясь согласовать настолько много повторений насколько много их их может быть найдено. Затем он продолжает обработку остальной части шаблона. Если, впоследствии, появится несоответсвтие с шаблогам, происходит возврат, путем отбрасывания некоторых повторений "*", в случае, если это делает возможным совпадение остальной части шаблона. Например, шаблон "c[ad]*ar" для строки "caddaar", "[ad]*" сначала совпадает с "addaa", но это не позволяет совпасть следующему символу "a" в шаблоне. Так последнее совпадение "[ad]" отменяутся, и следующий символ "a" пробуется вновь. Теперь шаблон сооветствует.

`+'

"+" Подобен "*" за исключением того, что требуется по крайней мере одно соответствие для предшествующего образца. Таким образом, "c[ad]+r" не совпадает с "cr", но совпадет с чем либо еще что может быть задано шаблоном "c[ad]*r".

`?'

"?" Подобен "*" за исключением того, что позволяет задать нуль или более соответствий для заданного шаблона. Таким образом, шаблон "c[ad]?r" будет задавать строки "cr" или "car" или "cdr", и ничего больше.

`[ ... ]'

"[" начинает "множество символов", которое завершается символом "]". В самом простом случае, символы между этими двумя скобками формируют множество. Таким образом, "[ad]" задает символы "a" или "d", и "[ad]*" задает любоую п оследовательность символов "a" и "d" (включая и пустую строку), из чего следует, что шаблон "c[ad]*r" задает "car", и т.д.

Диапазон символов также может быть включен в множество символов, с помощью символа "-", помещенного между двумя другими. Таким образом, шаблон "[a-z]" задает любой символ нижнего регистра. Диапазоны могут свободно перемежаться с одиночными символами, как в шаблоне "[a-z$%.]", который задает любой символ нижнего регистра или символы "$", "%" или точку.

Обратите внимание, что символы, обычно являющиеся специальными, внутри множества символов больше не являются таковыми. Внутри множества символов существует полностью отличный набор специальных символов : "]", "-" и "^".

Для того чтобы включить "]" в множество символов, нужно сделать его первым символом. Например, шаблон "[]a]" задает символ "]" или "a". Чтобы включить символ "-", нужно использовать его в таком контексте, где он не может указывать диапазон: то есть или первым символом, или сразу после диапазона.

`[^ ... ]'

"[^" начинает "исключающее множество символов", который задает любой символ за исключением заданных. Таким образом, шаблон "[^a-z0-9A-Z]" задает любой символ *за исключением* букв и цифр.

"^" не является специальным символом в множестве, если только это не первый символ. Символ следующий после "^" обрабатывается так, как будто он является первым (это может быть "-" или "]").

`^'

Является специальным символом, который задает пустую строку - но только в случае если он стоит в начале строки шаблона. Иначе шаблон не будет соответствовать. Таким образом, шаблон "^foo" задает "foo" в начале строки.

`$'

Подобен "^", но только задает конец строки. Так шаблон, "xx*$" задает строку с одним или более символом "x" в конце строки.

`\'

Имеет два значения: экранирует вышеперечисленные специальные символы (включая "\"), и задает дополнительные специальные конструкции.

Так как "\" экранирует специальные символы, "\$" является регулярным выражением, задающим только символ "$", а "\[" является регулярным выражением, задающим только "[", и так далее.

В основном, "\" с последующим любым символом соответствует только этому символу. Однако, есть некоторые исключения: символы, который, когда "\" предшествует специальная конструкция. Такие символы обычно всегда задают их собственное значение.

Никакие новые специальные символы не определены. Все расширения к синтаксису регулярных выражений сделаны, определением новые двух-символьных конструкций, которые начинаются с "\".

`\|'

Задает альтернативу. Два регулярных выражения A и B с "\|" между ними формируют выражение, которое задает что-либо чему соответствует или А или B.

Так выражение, "foo\|bar" или "foo" или "bar", но никакую другую строку.

"\|" применяется к максимально большим окружающим выражениям. Только "\(...\)" вокруг выражений могут ограничивать мощность "\|".

Существует полная возможность перебора с возвратами , когда задано множество "\|".

`\( ... \)'

является конструкцией группирования , которая служит трем целям: 1. Заключать в себя множество "\|" альтернатив для других операций. Так, шаблон "\(foo\|bar\)x" соответствует или "foox" или "barx".

2. Включать сложное выражение для постфиксного "*". Так шаблон "ba\(na\)*" задает "bananana", и т.д., с любым (ноль или болеее ) количеством "na".

3. Отметить искомую подстроку для последующего обращения.

Эта последняя функция - не следствие идеи относительно группировки выражений скобками; это - отдельная особенность, которая задает второе значение для той-же самой конструкции "\(...\)" , так как нет практически никакого конфликта между этими двумя значениями. Вот объяснение этой особенности:

`\DIGIT'

После окончания конструкции "\(...\)" , анализатор запоминает начало и конец текста, совпавшего с этой конструкцией. Затем, позднее в регулярном выражении можно использовать "\" с поледующей цифрой (DIGIT), что означает "задать тот же самый текст, который соответствовует DIGIT нахождению в конструкции '\(...\)'". "\(...\)" конструкции пронумерованы в порядке возрастания в регулярном выражении.

Строкам задающим первые девять конструкций "\(...\)" , появляющимся в регулярном выражении - соответствуют числа от 1 до 9. "\1" до "\9" может быть использовано для обращения к тексту, соответствующей "\(...\)" конструкции. Эти 9 сохраненных конструкций известны также как регистры.

Например, шаблон "\(.*\)\1" задает любую строку, который состоит из двух идентичных частей. "\(.*\)" задает первую часть, которая может быть всем чем угодно, но последующая "\1" задает точно тот же тексту.

Сохраненные конструкции или регистры могут использоваться внутри одиночных выражений, или, они могут быть извлечены и использоваться где-либо еще. Добавление третьего параметра к reg_match() или reg_search() определит массив, в который будут записаны 9 регистров. При этом записывается дополнительный регистр (нулевой элемент) в котором задана строка совпавшая со всем выражением. Например:

<?$string = "This is a test";
      $cnt = reg_match("\(\w*\).*\(\")
      echo $cnt;
      echo $regs[0];
      echo $regs[1];
      echo $regs[2];
    >

Вышеупомянутое сначала напечатает количество совпавших символов (14 в этом случае) и затем всю совпавшую строку, споследующим первым словом строки и последним.

`\b'

Задает пустую строку, но только, если она находится в начале или в конце слова. Таким образом, "\bfoo\b" соответствует любому местонахождению "foo" в виде отдельного слова. "\bball\(s\|\)\b" соответствует "ball" или "balls" в виде отдельных слов.

`\B'

Задает пустую строку, если она не в начале или не в конце слова.

`\<'

Задает пустую строку, но только, если она - в начале слова.

`\>'

Задает пустую строку, но только, если она в конце слова.

`\w'

Задает любой символ, являющийся составной частью слова.

`\W'

Задает любой символ, который - не является составной частью слова.

[Назад] [Содержание] [Вперед]