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 строка)

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


 

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

30675. Тема героя и толпы в произведениях отечественной литературы 14.5 KB
  Конфликт в который вступают Чацкий и московское общество весь ход сюжета убедительно доказывают что Чацкий по сути дела один на один с целым мирком в миниатюре миром Фамусова. Фамусовское общество является жалким подражателем всего французского; и только Чацкий единственный русский человек во всей пьесе. Воскреснем ли когда от чужевластья мод вопрошает он иронизируя над тем что московское общество одевается по французской моде предпочитает французскую кухню французский язык знает лучше чем русский.Фамусовское общество...
30676. Тема греха и покаяния в русской литературе 13.81 KB
  Особенно остро ставил проблему греха и покаяния в своем творчестве Ф.Проблему нравственного греха и покаяния ставил не только Ф.Таким образом тема греха и покаяния проходит через творчество многих русских писателей.
30677. Философские вопросы бытия в лирике С.А. Есенина (на примере 3 -4 стихотворений по выбору экзаменуемого). Тема жизни и смерти в стихотворении «Мы теперь уходим понемногу…» 14.68 KB
  Тема жизни и смерти в стихотворении Мы теперь уходим понемногу В своей философской лирике Есенин ставит множество вопросов обращенных в первую очередь к самому себе: чем я жил что я успел для чего пришел в этот миЕсенин всегда ощущал себя частью этого мира. Часто он находил отклик своим мыслям в мире природы поэтому его философская лирика темно переплетается с пейзажной и наполнена аналогиями между законами человеческой жизни и законами природы. Жизненный путь пройден природа завершила свой кругСоотношение весны человека и...
30679. Тема подвига и самопожертвования в русской литературе 14.15 KB
  Подвиг самопожертвование могут восприниматься писателями поразному. Человек совершает подвиг не только в исключительные моменты своей жизни но и в семейнобытовом социальном философском плане. Если бы не слова князя Андрея никто бы не узнал о его подвиге.
30680. Тема России в лирике Блока. Чтение наизусть «Река раскинулась. Течет, грустит лениво…» 14.97 KB
  Течет грустит лениво Тема Родины России занимала в творчестве Блока особое место и была для него поистине всеобъемлющей. В стихотворении Осенняя воля 1905 отчетливо прослеживаются лермонтовские традиции творчества Блока:Выхожу я в путь открытый взорамВетер гнет упругие кустыБитый камень лег по косогорамЖелтой глины скудные пластыЛирический герой Блока не случайный прохожий а один из сыновей России идущий знакомым путем и сопричастный горькой судьбе тех кто умирает не любя но кто стремится к слиянию с родиной: Приюти ты в...
30682. Тема чести в произведениях отечественной классики XIX века 18.92 KB
  Проблема чести была актуальна во все времена но особенно ярко это проявилось в литературе 19го века.Тема чести одна из основных в романе А. Кодекс дворянской чести требовал чтобы герой отдал за императрицу свою жизнь и Гринев был готов на это.
30683. Тематика и художественные особенности «Сказок» М. Е. Салтыкова-Щедрина 15.75 KB
  Известно что Салтыков-Щедрин начал писать свои политические сказки еще в шестидесятые годы и что именно эти небольшие по объему произведения стали вершиной его творчества итоговым произведением. Одной из самых известных сказок Салтыкова-Щедрина является Повесть о том как один мужик двух генералов прокормил. Спасенные и разбогатевшие генералы проявляют свою благодарность высылают ему пятак серебром да рюмку водки веселись мужчина Во многих других сказках Салтыкова можно встретить применение...