Тестирование палиндрома часть 2

Тестирование палиндрома - часть 2

В первой части урока мы подошли к тому моменту, когда мы удаляем определенный список символов..

Однако в нашем случае такой подход не самый подходящий. Трудно точно перечислить, какие признаки мы хотим убрать..

В качестве условия мы не говорим: «Мы игнорируем точку, запятую, пробел, тире, вопросительный знак, восклицательный знак» и т. Д. Мы говорим просто по человеческим "особым знакам".

Мы легко понимаем, что можем просто пропустить все, кроме букв.

Компьютеры могут повторить это снова, но не с помощью функции str_replace, а с помощью регулярных выражений..

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

Простое регулярное выражение

$ test = ‘Если бы у меня был Hi-Fi’;
$ упрощенный = preg_replace (‘/ \ W /’, », $ test);
echo $ упрощено;

Читать также:  Различия в HTML4 и HTML5

preg_replace — это функция, похожая на str_replace. Разница в том, что первый аргумент — это не строка, а регулярное выражение..

Что такое регулярные выражения?

Обычные фразы — это гибкий способ описания текста. У нас должен быть «разделитель» в начале и в конце. Он должен быть одинаковым в обоих местах. Другое условие — это не встречается больше нигде в регулярном выражении..

По соглашению чаще всего используется разделитель "/"..

Побег через разделитель

Если нам все еще нужно описать текст, в котором встречается этот разделитель, мы можем экранировать его с помощью косой черты. Например, в URL-адресах нам нужно много избегать: /http:\/\/magadanski\.com\//.

Я начинаю с /, потом появляется http:. Далее адрес моего сайта будет //magadanski.com/. // Escape-you, написав косую черту перед каждым: \ / \ /. Я продолжаю магаданский, а перед точкой ставлю снова \, потому что это тоже имеет особое значение: \ .com.

Читать также:  Различия в HTML4 и HTML5 как использовать новые теги в старых браузерах

Потому что у меня наконец-то есть / write \ /.

Поскольку я закончил с регулярным выражением, мне нужно снова написать разделитель: /.

Такое количество слэшей может сбивать с толку при написании. А при чтении чужого кода становится практически невозможно понять, о чем идет речь..

Прочие разделители

Поэтому при работе с Интернет-адресами вместо / в качестве разделителя в регулярных выражениях часто используется # или ~.

Таким образом, "/http:\/\/magadanski\.com\//" становится аналогом #http: // magadanski \ .com / # и ~ http: // magadanski \ .com / ~. Гораздо яснее, не правда ли??

Мета-знаки

В приведенном выше примере я использовал \ W. Это называется «мета-знак» и означает «все без букв»..

В регулярных выражениях важны прописные и строчные буквы. Хотя \ W означает «все без букв», если вы напишете его с маленькой буквой «w», это будет как раз наоборот: «только буквы»..

Читать также:  Тестирование палиндрома часть 1

Косая черта перед буквами «W» и «w» в обоих примерах означает, что это специальный символ, а не просто буква «W» или «w»..

Другие метасимволы: \ d (числа), \ D (все без чисел), \ s (пробелы — пробел, табуляция, новая строка и т. Д.), \ S (все без пробелов).

Итак, preg_replace (‘/ \ W /’, », $ test); возвращает строку, в которой все, кроме букв, заменяется пустой строкой. Именно то, что мы хотели.

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

Понравилась статья? Поделиться с друзьями:
Что нужно знать пользователю?