67788

Создание программы, которая заключает в тэги все слова и словосочетания, в которых встречаются 5 согласных букв подряд

Лабораторная работа

Информатика, кибернетика и программирование

Служебный символ. (точка) означает «любой символ». Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р. Объединение служебных символов приводит к появлению более сложных выражений. Рассмотрим несколько примеров...

Русский

2016-09-07

51 KB

1 чел.

Содержание

[1]
Задание

[2] Теория


Задание

Создать программу, которая заключает в тэги <i/>…</i> все слова и словосочетания, в которых встречаются 5 согласных букв подряд.

Теория

Работа с файлами

Открытие файлов в файловой системе сервера производится при помощи функции fopen:

 int fopen(string filename, string mode [, int use_include_path])

filename - имя файла или абсолютный путь к нему.

mode говорит о том, для каких действий открывается файл и может принимать следующие значения:

  •  r (Открыть файл только для чтения; после открытия указатель файла устанавливается в начало файла);
  •  r+ (Открыть файл для чтения и записи; после открытия указатель файла устанавливается в начало файла);
  •  w (Создать новый пустой файл только для записи; если файл с таким именем уже есть вся информация в нем уничтожается);
  •  w+ (Создать новый пустой файл для чтения записи; если файл с таким именем уже есть вся информация в нем уничтожается);
  •  a (Открыть файл для дозаписи; данные будут записываться в конец файла);
  •  a+ (Открыть файл для дозаписи и чтения данных; данные будут записываться в конец файла);
  •  b (Флаг, указывающий на работу (чтение и запись) с двоичным файлом; указывается только в Windows).

Третий необязательный аргумент use_include_path определяет должны ли искаться файлы в каталоге include_path. (Параметр include_path устанавливается в файле php.ini).

Закрытие файлов осуществляется с помощью функции fclose:

 int fclose (int file)

Прочитать строку из открытого файла можно с помощью функции fread:

 string fread ( int file, int length )

Запись в файлы осуществляется функциями fputs и fwrite, которые абсолютно идентичны:

 int fputs ( int file, string string [, int length ])

 int fwrite ( int file, string string [, int length ])

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

Квадратные скобки ([ ]) имеют особый смысл в контексте регулярных выражений -- они означают «любой символ из перечисленных в скобках».
Ниже перечислены некоторые часто используемые интервалы:

  •  [0-9] -- совпадает с любой десятичной цифрой от 0 до 9;
  •  [a-z] -- совпадает с любым символом нижнего регистра от а до z;
  •  [A-Z] -- совпадает с любым символом верхнего регистра от А до Z;
  •  [a -Z] -- совпадает с любым символом нижнего или верхнего регистра от а до Z.
  •  р+ означает один или несколько символов р, стоящих подряд;
  •  р* означает ноль и более символов р, стоящих подряд;
  •  р? означает ноль или один символ р;
  •  р{2} означает два символа р, стоящих подряд;
  •  р{2,3} означает от двух до трех символов р, стоящих подряд;
  •  р{2,} означает два и более символов р, стоящих подряд.
  •  Конструкция [^a-zA-Z] совпадает с любым символом, не входящим в указаные интервалы (a-z и A-Z).
  •  Служебный символ . (точка) означает «любой символ». Например, выражение р.р совпадает с символом р, за которым следует произвольный символ, после чего опять следует символ р.

Объединение служебных символов приводит к появлению более сложных выражений. Рассмотрим несколько примеров:

  •  ^.{2}$ -- любая строка, содержащая ровно два символа;
  •  <b>(.*)</b> -- произвольная последовательность символов, заключенная между <Ь> и </Ь> (вероятно, тегами HTML для вывода жирного текста);
  •  p(hp)* -- символ р, за которым следует ноль и более экземпляров последовательности hp (например, phphphp).
  •   [[:alpha:]] -- алфавитный символ (aA-zZ);
  •  [[:digit:]]-цифра (0-9);
  •  [[:alnum:]] -- алфавитный символ (aA-zZ) или цифра (0-9);
  •  [[:space:]] -- пропуски (символы новой строки, табуляции и т. д.).

В настоящее время PHP поддерживает семь функций поиска с использованием регулярных выражений в стиле POSIX:

  •  еrеg( );
  •  еrеg_rерlасе( );
  •  eregi( );
  •  eregi_replace( );
  •  split( );
  •  spliti( );
  •  sql_regcase( ).

Описания этих функций приведены в следующих разделах.

ereg( )

Функция еrеg( ) ищет в заданной строке совпадение для шаблона. Если совпадение найдено, возвращается TRUE, в противном случае возвращается FALSE. Синтаксис функции ereg( ):

int ereg (string шаблон, string строка [, array совпадения])

ereg_replace( )

Функция ereg_replace( ) ищет в заданной строке совпадение для шаблона и заменяет его новым фрагментом. Синтаксис функции ereg_replace( ):

string ereg_replace (string шаблон, string замена, string строке)

У средств поиска с заменой в языке PHP имеется одна интересная возможность -- возможность использования обратных ссылок на части основного выражения, заключенные в круглые скобки. Обратные ссылки похожи на элементы необязательного параметра-массива совпадения функции еrеg( ) за одним исключением: обратные ссылки записываются в виде \0, \1, \2 и т. д., где \0 соответствует всей строке, \1 -- успешному совпадению первого подвыражения и т. д.

eregi( )

Функция eregi( ) ищет в заданной строке совпадение для шаблона. Синтаксис функции eregi( ):

int eregi (string шаблон, string строка [, array совпадения])

eregi_replace( )

Функция eregi_replасе( ) работает точно так же, как ereg_replace( ), за одним исключением: поиск производится без учета регистра символов. Синтаксис функции ereg_replace( ):

string eregi_replace (string шаблон, string замена, string строка)

split( )

Функция split( ) разбивает строку на элементы, границы которых определяются по заданному шаблону. Синтаксис функции split( ):

array split (string шаблон, string строка [, int порог])

Необязательный параметр порог определяет максимальное количество элементов, на которые делится строка слева направо

spliti( )

Функция spliti( ) работает точно так же, как ее прототип split( ), за одним исключением: она не учитывает регистра символов. Синтаксис функции spliti( ):

array spliti (string шаблон, string строка [, int порог])

sql_regcase( )

Вспомогательная функция sql_regcase( ) заключает каждый символ входной строки в квадратные скобки и добавляет к нему парный символ. Синтаксис функции sql_regcase( ):

string sql_regcase (string строка)

Если алфавитный символ существует в двух вариантах (верхний и нижний регистры), выражение в квадратных скобках будет содержать оба варианта; в противном случае исходный символ повторяется дважды.


 

А также другие работы, которые могут Вас заинтересовать

45734. Ю. Хабермас. Моральное сознание и коммуникативное действие 38 KB
  Действия в этих мирах выражаются в языке. Теория коммуникативного действия: центром усилий Хабермаса различение противопоставление инструментального и коммуникативного действия. Воплощение инструментального действия сфера труда. При совершении инструментального действия реализуются определенные цели осуществляются предсказания касающиеся последствий данного действия.
45735. Хайдеггер. Бытие и время 47 KB
  Бытие и время. Бытиевмире вообще как основоустройство присутствия Гл. Бытиевмире как событие и бытие самости. Бытиев как таковое Гл.
45736. Диалектика просвещения. Философские фрагменты 23 KB
  В книге описывается саморазрушение просвещения и его возвращение к мифологии с которой оно боролось столетиями. Первый называется Понятие просвещения.
45737. Философические письма 42.5 KB
  Окидывая взглядом историю России Чаадаев обнаруживает в ней мрачное и тусклое существование где нет внутреннего развития. Чаадаев противник идеи множественности цивилизаций ибо неевропейские формы быта он рассматривает как нелепые отступления . Смысл же России Чаадаев видит в следующем: Мы жили и сейчас еще живем для того чтобы преподать какойто великий урок отдаленным потомкам Последующие письма Во втором письме Чаадаев подвергает критике православие за то что оно в отличие от западного христианства не способствовало освобождению...
45738. Шелер. Положение человека в космосе 37.5 KB
  Положение человека в космосе. Макс Шелер 18741928 Очерк Положение человека в космосе рассуждение о богоподобии человека. антроплогия имеет предметом определение человека его места. Сущность человека – переход от животного к божественному.
45739. Теоретические источники идей Шопенгауэра 39.5 KB
  Эти теории объединяет присутствующая в античной мифологии идея о том что мир в котором мы живем не является единственной реальностью что существует другая реальность которая не постигается разумом и наукой но без учета влияния которой становится противоречивой наша собственная жизнь. Опираясь на учение Канта Шопенгауэр пишет: Кантовский идеализм показывает что весь материальный мир с его телами протяженными в пространстве и находящимися посредством времени в отношении причинности друг к другу и всем с этим связанным не есть нечто...
45740. Давид Юм «Трактат о человеческой природе» 35.5 KB
  Ассоциация по сходству похожесть ассоциация по смежности в пространстве и времени ассоциация по причинности Юм выступает против понятия абстрактной идеи требуя ее элиминации из философского рассмотрения поскольку идеи выступают слабыми копиями впечатлений а для абстрактных идей невозможно указать какоелибо из впечатлений которое было бы их источником. В центре гносеологической концепции Юма анализ идеи причинности. Идея причинности образуется из следующих эмпирических отношений между объектами: смежности в пространстве и времени...
45741. Никомахова этика 22 KB
  Никомахова этикаАристотель утверждает что предметом его этики является счастье которое он определяет как деятельность души в полноте добродетели. Аристотель делит все добродетели на нравственные или этические и мыслительные или разумные или дианоэтические. Каждая из этических добродетелей представляет собой середину между крайностями; Аристотель называет такие этические добродетели: кротость мужество умеренность щедрость величавость великодушие честолюбие ровность правдивость любезность дружелюбие справедливость...