Поиск символа в строке PHP с помощью strpos, preg_match и strstr
В этой статье рассматриваются различные методы поиска слова, символа или подстроки в тексте. Описываются преимущества и недостатки каждого метода.
- Поиск символа в строке — использование strpos() для регистрозависимого поиска
- Поиск символа в строке — использование функции stripos() для регистронезависимого поиска
- Поиск символа в строке — использование регулярных выражений
- Использование регулярных выражений для поиска точного вхождения слова
- Использование strstr() для поиска подстроки
Простейшим способом проверить, содержит ли строка определённое слово, является использование PHP функции strpos(). Она возвращает позицию первого вхождения подстроки в строке или FALSE, если соответствия не найдены.
$the_string = "Я на 5 лет старше тебя."; $the_word = "лет"; $the_character = "Я"; $the_substring = "5 лет"; // Вывод — Слово "лет" есть в данной строке. if (strpos($the_string, $the_word) !== false) { echo 'Слово "'.$the_word.'" есть в данной строке.'; } // Вывод — Символ "Я" есть в данной строке. if (strpos($the_string, $the_character) !== false) { echo ' Символ "'.$the_character.'" есть в данной строке.'; } // Вывод — Подстрока "5 лет" есть в данной строке. if (strpos($the_string, $the_substring) !== false) { echo 'Подстрока "'.$the_substring.'" есть в данной строке.'; }
Обратите внимание, что я использовал оператор строгого неравенства (!==). Если искомое слово встречается в начале строки, функция strpos() вернёт 0. Это будет расценено оператором != как значение FALSE. Пример:
// Вывод — Символа "Я" нет в данной строке. if (strpos($the_string, $the_character) != false) { echo 'Символ "'. $the_character.'" есть в данной строке.'; } else { echo 'Символа "'.$the_character.'" нет в данной строке.'; }
При поиске целого слова (например, “на”) функция также вернёт значение TRUE, если строка содержит такие слова, как “она”, “вена” или “например”.
Также можно использовать > -1 вместо !==. Потому что даже если strpos() вернёт 0 как значение индекса, он всё равно будет больше -1. Но помните, что оператор «больше» (>) работает медленнее оператора строгого неравенства (!==).
Для регистрозависимого поиска можно использовать функцию stripos(). Она работает аналогично функции strpos(). Единственное отличие заключается в том, что она игнорирует регистр при поиске подстроки внутри другой строки.
$the_string = "Ваня любит и яблоки, и апельсины."; $the_word = "ваня"; $the_character = "Я"; $the_substring = "ЛЮбИт И"; // Вывод — Слово "ваня" есть в данной строке. if (stripos($the_string, $the_word) !== false) { echo 'Слово "'.$the_word.'" есть в данной строке.'; } // Вывод — Символ "Я" есть в данной строке. if (stripos($the_string, $the_character) !== false) { echo 'Символ "'.$the_character.'" есть в данной строке.'; } // Вывод — Подстрока "ЛЮбИт И" есть в данной строке. if (stripos($the_string, $the_substring) !== false) { echo 'Подстрока "'.$the_substring.'" есть в данной строке.'; }
Функция strpos() вернула бы значение FALSE во всех перечисленных выше случаях. Но функция stripos() проигнорировала регистр и вернула значение TRUE.
Другим способом поиска, независящим от регистра, является преобразование всех строк и подстрок в одинаковый регистр, используя функции strtolower() и strtoupper(). Для проверки можно использовать strpos(). Но проще stripos().
Также для поиска можно использовать регулярные выражения. Они лучше подходят для случаев, когда вы ищете в строке более сложные конструкции.
Но помните, что функция strpos() работает в три раза быстрее, чем регулярные выражения. Следующий пример демонстрирует, как с их помощью найти слово, символ в строке:
$the_string = "Я на 5 лет старше тебя. "; $the_word = "лет"; $the_character = "Я"; $the_substring = "5 лет"; // Вывод — Слово "лет" есть в данной строке. if (preg_match('/лет/', $the_string)) { echo 'Слово "'.$the_word.'" есть в данной строке.'; } // Вывод — Символ "Я" есть в данной строке. if (preg_match('/Я/', $the_string)) { echo 'Символ "'.$the_character.'" есть в данной строке.'; } // Вывод — Подстрока "5 лет" есть в данной строке. if (preg_match('/5 лет/', $the_string)) { echo 'Подстрока "'.$the_substring.'" есть в данной строке.'; }
Использование функции preg_match() имеет смысл только при сложном поиске. Например, для проверки того, содержит ли строка слова с десятью и более символами и т.п. Пример:
$the_string = 'Фотосинтез и рискованный – длинные слова.'; // Вывод — Данная строка содержит слова из 10 и более символов. if (preg_match('/w{10,}/i', $the_string)) { echo 'Данная строка содержит слова из 10 и более символов.'; }
Чтобы сделать поиск регистронезависимым, добавьте флаг i в конец шаблона. Пример реализации:
$the_string = "Ваня любит и яблоки, и апельсины."; $the_word = "ваня"; $the_character = "Я"; $the_substring = "ЛЮбИт И"; // Вывод — Слово "ваня" есть в данной строке. if (preg_match('/ваня/i', $the_string)) { echo 'Слово "'.$the_word.'" есть в данной строке.'; } // Вывод — Символ "Я" есть в данной строке. if (preg_match('/Я/i', $the_string)) { echo 'Символ "'.$the_character.'" есть в данной строке.'; } // Вывод — Подстрока "ЛЮбИт И" есть в данной строке. if (preg_match('/ЛЮбИт И/i', $the_string)) { echo 'Подстрока "'.$the_substring.'" есть в данной строке.'; }
Функции strpos() и stripos()работают быстрее, чем регулярные выражения. Но их использование для поиска точного вхождения слова может быть проблематичным.
В подобных ситуациях лучше применять регулярные выражения. Можно использовать выражение b в шаблоне регулярного выражения, чтобы обозначить границу слова. Если слово, которое вы ищете, заключено в выражения b, функция preg_match() найдёт только точные вхождения слова и вернет FALSE для частичных совпадений.
$the_string = 'Фотосинтез и рискованный – длинные слова.'; $the_word = 'синтез'; // Вывод — Слово "синтез" имеет точное совпадение в данной строке. [ЛОЖНО положительный] if (preg_match('/синтез/', $the_string)) { echo 'Слово "синтез" имеет точное совпадение в данной строке. [ЛОЖНО положительный]'; } // Вывод — Слово "синтез" имеет точное совпадение в данной строке. [ЛОЖНО положительный] if (strpos($the_string, $the_word)) { echo 'Слово "синтез" имеет точное совпадение в данной строке. [ЛОЖНО положительный]'; } // Вывод — Слово "синтез" не имеет точных совпадений в данной строке. [Ожидаемый Результат] if (preg_match('/bсинтезb/', $the_string)) { echo 'Слово "синтез" имеет точное совпадение в данной строке. [ЛОЖНО положительный]'; } else { echo 'Слово "синтез" не имеет точных совпадений в данной строке. [Ожидаемый Результат]'; }
PHP функция strstr() может быть использована для проверки вхождения символа или подстроки. Она возвращает часть исходной строки, начиная с первого вхождения искомого слова и до конца. Функция вернёт значение FALSE, если подстрока не найдена. Благодаря этому можно проверить, содержит ли строка подстроку. Вот пример:
$the_string = "Я на 5 лет старше тебя."; $the_word = "лет"; $the_character = "Я"; $the_substring = "5 лет"; // Вывод — Слово "лет" есть в данной строке. if (strstr($the_string, $the_word) !== false) { echo 'Слово "'.$the_word.'" есть в данной строке.'; } // Вывод — Символ "Я" есть в данной строке. if (strstr($the_string, $the_character) !== false) { echo 'Символ "'.$the_character.'" есть в данной строке.'; } // Вывод — Подстрока "5 лет" есть в данной строке. if (strstr($the_string, $the_substring) !== false) { echo 'Подстрока "'.$the_substring.'" есть в данной строке.'; }
Для регистронезависимого поиска используйте функцию stristr().
Краткое резюме
- Лучший метод поиска символа или слова в строке – PHP функции strpos(). Если нужно провести регистронезависимый поиск, применяйтеstripos(). Обе функции просты в использовании и работают быстрее остальных методов.
- Для сложного поиска используйте регулярные выражения. Вы также можете применять их для простого поиска, но они работают медленнее, чем функция strpos().
- Регулярные выражения полезны, когда вы ищете точное вхождение слова. Например, при поиске слова “сто” функция strpos() также вернёт значение TRUE, если строка содержит слово “Место”. С другой стороны, можно использовать выражение b в функции preg_match(), которая в таком случае возвратит FALSE.
- Используйте strstr() для регистрозависимого поиска и stristr() для регистронезависимого.
Пожалуйста, оставьте свои комментарии по текущей теме материала. Мы крайне благодарны вам за ваши комментарии, отклики, лайки, дизлайки, подписки!
Сергей Бензенкоавтор-переводчик статьи «Best way to check if a string contains a specific word or substring in PHP»
gif»> |
Рубрика: Разработка / Тестирование |
ИГОРЬ ОРЕЩЕНКОВ, инженер-программист, [email protected]
Исследование операции поиска
символа в строке (PHP)
В статье рассказывается о способе измерения времени выполнения и сравнения эффективности конструкций языка программирования PHP
Производительность – одна из важнейших характеристик программы
При выборе программы, из нескольких вариантов, решающих одну и ту же проблему, пользователь при прочих равных условиях предпочтет ту, что работает быстрее. Это и не удивительно. Во-первых, работать с программой, которая быстро запускается, быстро откликается на воздействия и быстрее выдает требуемый результат, просто приятно. Во-вторых, скорость работы является решающим фактором в некоторых задачах. Например, модуль декодирования видеопотока, не обеспечивающий должной производительности, просто непригоден для использования.
Поэтому скорость работы программы является одним из важнейших ее параметров (наряду с функциональными требованиями, эргономичностью и запросами в отношении объемов оперативной и внешней памяти), которому уделяется много внимания в ходе разработки. Каким образом достигается должная производительность?
Предположим, что аппаратная платформа, на которой будет выполняться программа, архитектура программы и среда ее выполнения уже выбраны. Программисту остается принять решение относительно исполнения программных модулей.
Опытный разработчик знает, что особое внимание нужно обращать на эффективную реализацию многократно выполняемых блоков. Как правило, «узким местом» в вопросе производительности являются циклы, повторяющие какую-нибудь операцию. Например, общеизвестно, что ресурсоемкими являются алгоритмы сортировки массивов, поиска элемента в массиве или строке, отыскания простых чисел и прочие.
Этим классам задач посвящены многочисленные исследования, их результатами стало появление «наилучших практик», которыми руководствуются разработчики [1]. Например, известно, что алгоритм пирамидальной сортировки требует меньше операций, чем сортировка методом «пузырька», а поиск методом половинного деления на отсортированном множестве менее затратен по сравнению с линейным поиском.
Проблема выбора эффективного решения
Однако при решении практических задач прямое применение результатов теоретических изысканий не всегда возможно. Они верны в тех случаях, когда алгоритмы выполняются в одинаковых условиях. Но архитектура современных компьютеров представляет собой многоуровневую систему [2], а современные языки и системы программирования предоставляют средства, работающие на разных уровнях этой архитектуры (см. рис. 1). Из-за этого даже малоэффективные алгоритмы, задействованные через встроенные функции языка, которые реализованы на низких уровнях, могут показать более быструю работу по сравнению с реализациями эффективных алгоритмов на верхнем уровне.
Например, в ходе лексического анализа [3] текста приходится решать вопрос о принадлежности символа некоторому множеству: прописных или строчных букв латинского или русского алфавита, цифр, знаков препинания или пробельных символов. Для этого можно провести поиск символа в эталонной строке. Если анализируемые тексты достаточно велики, то имеет смысл выполнять поиск наиболее эффективным способом, учитывая, что эта операция будет повторяться многократно.
В языке программирования PHP решить поставленную задачу можно одним из трех способов:
- с помощью встроенной функции strpos (S, C), выполняющей линейный поиск символа C в строке S;
- реализовав бинарный поиск в отсортированном массиве символов;
- с помощью логического выражения, проверяющего принадлежность символа некоторому диапазону: L ≤ C ≤ R.
Какой из этих вариантов будет работать быстрее?
Конечно, можно составить предварительное суждение о наилучшем способе решения задачи, реализовать его в продукте, а потом посмотреть, как выбранный метод работает на практике. Но в этом случае, даже если результат будет удовлетворительным, мы не можем быть уверены, что нельзя его улучшить или добиться того же уровня производительности более простым способом.
Поэтому предпочтительнее сначала смоделировать выполнение вызывающих сомнение участков кода, сравнить их производительность и выбрать для реализации наиболее подходящий. Несмотря на кажущуюся простоту этой идеи, на пути ее реализации есть несколько трудностей.
Во-первых, элементарные операции выполняются современными компьютерами чрезвычайно быстро. Поэтому определить время выполнения отдельной операции не представляется возможным. Однако эту проблему можно решить, поместив измеряемые операции в цикл. Тогда возникает задача определения количества итераций цикла, которое обеспечит достаточную для измерения временную задержку.
Во-вторых, чтобы результаты измерений можно было сравнивать между собой, условия измерений не должны отличаться. При выполнении опытов в среде современных многозадачных операционных систем достичь этого не так просто, как кажется. Независимо от желания администратора фоновый процесс операционной системы может инициировать дисковую операцию, а какая-нибудь служба может решить проверить наличие обновлений на сервере производителя.
В-третьих, эксперимент есть эксперимент, и для получения достоверных результатов нужно провести серию опытов, после чего рассчитать погрешность: вдруг измеренные временные интервалы не могут быть признаны состоятельными?
Понимая глубину проблемы, было принято решение о разработке на языке PHP класса, автоматизирующего процесс тестирования и обеспечивающего необходимые для него условия.
Статью целиком читайте в журнале «Системный администратор», №1-2 за 2015 г. на страницах 77-81.
PDF-версию данного номера можно приобрести в нашем магазине.
- Вирт Н. Алгоритмы и структуры данных. //Пер. с англ. – 2-е изд., испр. – СПб.: «Невский Диалект», 2005. – 352 с.
- Таненбаум Э. Архитектура компьютера. – 5-е изд. (+CD). – СПб.: «Питер», 2013. -844 с.
- Залогова Л. А. Разработка Паскаль-компилятора. – М.: БИНОМ. Лаборатория знаний, 2012. – 183 с.: ил.
- Савчук В.П. Обработка результатов измерений. Физическая лаборатория. Ч.1: Учеб. пособие для студентов вузов. – Одесса: ОНПУ, 2002. – 54 с.: ил.
- Таненбаум Э. Современные операционные системы. – 3-е изд. – СПб.: «Питер», 2013. – 1120 с.
- Тестирующий класс PHP – https://github.com/R0bur/PHP-performance-test/archive/master.zip.
как найти русский символ в строке? | PHPClub
rubalex
Новичок
- #1
как найти русский символ в строке?
подскажите идею, или функцию которая отличает русс симовл от англ.
Апокалипсис
тех дир matras.ru
- #2
регулярные выражения
[m]preg_match[/m] например
rubalex
Новичок
- #3
а как правильно шалон $pattern заполнить руским алфавитом? -абвгде-
Апокалипсис
тех дир matras.
ru
- #4
Почитай:
http://php.spb.ru/php/regexp.html — старая но актуальная статья
http://phpfaq.ru/regexp
rubalex
Новичок
- #5
спасибо за ссылку, разобрался
if(preg_match(«/^[^а-я]+$/», $user))
{
echo «отличны от русс»;
} else
{
echo «есть русс»;
}
все так?
ys
отодвинутый новичок
- #6
АБВГД?
Gorynych
Посетитель PHP-Клуба
- #7
улыбнулся:
PHP:
if ( mb_detect_encoding($user) != "ASCII" ) { echo "есть символы, отличные от ASCII, возможно - кириллица"; } else { echo "ASCII текст"; }
rubalex
Новичок
- #8
mb_detect_encoding()
это что? в какой версии?
phprus
Moderator
- #9
Вот что это — [m]mb_detect_encoding[/m]
light83
Новичок
- #10
А что делать если нужно не пропустить все, кроме русских символов и знаков? использую в preg_match_all:
[a-zA-Zа-яА-Я]+ — пропускает всё подряд;
причем если просто a-zA-Z — то уже работает как надо, только латиница.
А если а-я ставишь, то буква ы например (и ряд других) показывается в неизвестной кодировке квадратиками. Остальные русские буквы — ок.
Выход в перечислении абвгдАБВГД…., тогда кириллица показывается нормально, но проходят любые символы.
Кто как решал?
В идеале нужно чтобы все кроме знаков препинания, кириллицы и латиницы срезалось, но проблема в том что нет точного списка того, что не должно пройти, а есть только список разрешенных знаков.
—
Решение найдено: модификатор iu
Проверить, содержит ли строка определенное слово в PHP
Главная » Проверить, содержит ли строка определенное слово в PHP
Часто разработчики хотят проверить, содержит ли строка определенное слово в PHP. Для этого мы можем использовать функции strpos() и preg_match(). Давайте посмотрим, как это сделать.
Проверить, содержит ли строка определенное слово
01 Найти точное совпадение с помощью функции PHP preg_match()
Вы можете использовать функцию PHP preg_match(), чтобы проверить, содержит ли текст определенное слово или нет.
Использование: Функция preg_match()
используется для поиска точного совпадения шаблона в текстовой строке с использованием поиска по регулярному выражению.
Возврат: Эта функция вернет true
, если шаблон совпал, в противном случае она вернет false
.
Пример:
Следующий пример проверит точное совпадение слова, как мы ищем осведомленный
, тогда он будет искать только в курсе
слово, а не часть слова, как «осторожно», «не в курсе», «осведомленность» и т. д.
Выражение
\b
в шаблоне задает границу слова.Поиск без учета регистра с помощью preg_match()
Для поиска без учета регистра введите
"i"
после разделителя шаблона, как показано ниже:В приведенном выше примере мы проверяем
известное
конкретное слово, но наша строка содержит заглавную буквуAWARE
но хотя вернетСовпадение найдено
. из-за нечувствительного к регистру поиска.02 Используйте функцию PHP strpos()
Вы также можете использовать функцию PHP strpos(), чтобы проверить, содержит ли строка определенное слово или нет.
Функция strpos() вернет позицию первого вхождения подстроки в строку. Он вернет false, если совпадение не найдено.
Обратите внимание, что strpos() начинает поиск с индекса
0
, поэтому используйте оператор строгого сравнения, используя===
или!==
иначе будет считаться0 = false
.Давайте посмотрим на пример для лучшего понимания:
Вы также можете проверить, содержит ли строка слово, используя другие функции PHP, такие как stripos(), strstr(), stristr(), substr_count(), mb_strpos() и т. д.
Зачем использовать preg_match() И не
strpos ()
preg_match()
лучше подходит для сопоставления слов по сравнению сstrpos()
, потому что если вы проверяете строку, содержащую такое слово, как, "есть"
, и если ваша строка содержит такие слова, какосторожно, остерегайтесь, подготовьтесь,
и т. д., тогдаstrpos()
также вернет true.Чтобы понять эту ситуацию, рассмотрите следующий пример:
Приведенный выше пример должен возвращать
false
, но на выходе он возвращаетtrue
.Вывод:
trueНа данный момент это все. Мы надеемся, что эта статья помогла вам проверить, содержит ли строка определенное слово в PHP.
Кроме того, прочитайте наше руководство :
- Лучший способ удалить Public из URL-адреса в Laravel
- Ошибка после конфигурации php artisan: cache In Laravel
- Указанный ключ был слишком длинным Ошибка в Laravel
- Active Directory с использованием LDAP в PHP или Laravel
- Как использовать мягкое удаление Laravel
- Как добавить Laravel Next Prev Pagination
- Ошибка cURL 60: Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента
- Разница между Factory и Сеялки в Laravel
- Laravel: увеличить количество, если товар уже есть в корзине
- Как рассчитать возраст по дате рождения
- Как найти повторяющиеся записи в базе данных
Пожалуйста, дайте нам знать в комментариях, если все работает как положено, ваши проблемы или вопросы. Если вы считаете, что эта статья сэкономила ваше время и деньги, пожалуйста, комментируйте, делитесь, ставьте лайки и подписывайтесь. Заранее спасибо 🙂. Продолжайте улыбаться! Удачного кодирования!
Строка PHP содержит определенное слово или подстроку
Строка PHP содержит: В этом уроке мы увидим, как проверить, содержит ли строка определенный символ или подстроку.
Введение
Строка — это последовательность символов, которая может быть переменной или литеральной константой в PHP или других языках программирования. Определенная часть строки называется подстрокой .
В PHP есть несколько способов проверить, включен ли символ, слово или подстрока в другую строку. Вот различные методы, которые мы обсудим в этом уроке:
- Функция strpos () для проверки наличия в строке подстроки. Эта функция с учетом регистра .
- Функция stripos () для проверки наличия в цепочке подстроки. Эта функция нечувствительна к регистру .
- Использование strstr () для проверки наличия в строке подстроки
Давайте рассмотрим эти различные методы с несколькими примерами их использования.
Строка PHP содержит
Использование strpos() для проверки наличия в строке определенной подстроки
Самый простой способ проверить, содержит ли строка определенную подстроку, — использовать метод strpos():
# Синтаксическая функция strpos(строка,подстрока,смещение)
Эта функция может принимать до 3 параметров:
- Строка : Этот параметр определяет текст, в котором выполняется поиск.
- Подстрока : Этот параметр указывает подстроку, которую мы должны искать.
- Смещение ( Необязательный ): Поиск начнется с этого количества символов, считая с начала строки. Если это число отрицательное, поиск начнется с конца строки.
Функция возвращает True , если слово или подстрока были найдены в строке, и False , если нет.
Пример 1
Следующий код вернет True , поскольку основная строка $str содержит подстроку «Amira».
$str = 'Программирование и обработка данных Amiradata'; if (strpos($str, 'Амира') !== false) { эхо "истина"; } еще { эхо 'ложь'; }
Пример 2
Следующий код вернет False , поскольку функция strpos () чувствительна к регистру. Подстрока должна точно соответствовать искомому значению.
$str = 'Программирование и обработка данных Amiradata'; if (strpos($str, 'amira') !== false) { эхо "истина"; } еще { эхо 'ложь'; }
Пример 3
Следующий код вернет False , так как подстрока начинается с позиции 0.
$str = 'Amiradataprogramming and datascience'; if (strpos($str, 'Amira',2) !== false) { эхо "истина"; } еще { эхо 'ложь'; }
Использование stripos() для проверки наличия в строке PHP определенной подстроки
Основным недостатком функции strpos () является то, что она чувствительна к регистру . Если вас не волнует регистр искомой подстроки, вы можете использовать функцию stripos (). Единственное отличие от функции strpos () состоит в том, что эта функция нечувствительна к регистру .
Вот его синтаксис:
stripos(строка,подстрока,смещение)
Эта функция также принимает 3 параметра:
- Строка : Этот параметр определяет текст, в котором выполняется поиск.
- Подстрока : Этот параметр указывает подстроку, которую мы должны искать.
- Смещение ( Дополнительно )
Возвращает True, если подстрока была найдена в основной строке, и False, если нет.
Пример 1
Приведенный ниже код возвращает True , подстрока действительно присутствует в основной строке
$str = 'Программирование и обработка данных Amiradata'; if (stripos($str, 'Амира') !== false) { эхо "истина"; } еще { эхо 'ложь'; }
Пример 2
Приведенный ниже код возвращает True , функция нечувствительна к регистру и подстрока присутствует в основной строке.
if (stripos($str, 'amira') !== false) { эхо "истина"; } еще { эхо 'ложь'; }
Использование strstr() для проверки наличия в строке PHP определенной подстроки
Функция strstr () работает по тому же принципу, что и функция strpos(). Он также имеет нечувствительный к регистру эквивалент, называемый stristr ().
Пример 1
Эта функция возвращает True , подстрока присутствует (с учетом регистра)
if (strstr($str, 'Amira') !== false) { эхо "истина"; } еще { эхо 'ложь'; }
Пример 2
Эта функция возвращает True , подстрока присутствует (без учета регистра)
если (stristr($str, 'amira') !== ложь) { эхо "истина"; } еще { эхо 'ложь'; }
Заключение
В этом уроке мы видели, что есть несколько способов проверить, присутствует ли слово или подстрока в другой строке.
Самый простой способ — использовать функцию strpos(), если вы хотите, чтобы подстрока была чувствительна к регистру. В противном случае лучше использовать функцию stripos().
Я надеюсь, что этот урок заинтересовал вас, не стесняйтесь, пишите мне в комментариях, если у вас есть какие-либо вопросы по теме.
До скорой встречи,
Назад в меню PHP
Опубликовано
Категория PHP
Автор: ayed_amira
Я специалист по данным. Увлеченный новыми технологиями и программированием, я создал этот веб-сайт в основном для людей, которые хотят больше узнать о науке о данных и программировании 🙂
Просмотреть все сообщения ayed_amira.
Поиск цели в проекте
Вы можете искать текстовую строку в проекте, использовать различные области для сужения процесса поиска, исключать определенные элементы из поиска, находить случаи использования и вхождения.
Найти строку поиска в проекте
В главном меню выберите Правка | Найти | Найти в файлах Ctrl+Shift+F .
В поле поиска введите строку поиска. Либо в редакторе выделите строку, которую хотите найти, и нажмите Ctrl+Shift+F . PhpStorm помещает выделенную строку в поле поиска.
Чтобы просмотреть список ваших предыдущих поисков, нажмите Alt+Down .
При необходимости укажите дополнительные параметры.
PhpStorm перечисляет строки поиска и файлы, которые их содержат. Если строка поиска встречается несколько раз в одной и той же строке кода, PhpStorm объединяет результаты в одну строку.
Чтобы выполнить многострочный поиск, щелкните значок, чтобы ввести новую строку, и нажмите Ctrl+Alt+Down / Ctrl+Alt+Up для просмотра вхождений.
Проверьте результаты в области предварительного просмотра диалогового окна, где вы можете заменить строку поиска или выбрать другую строку, нажмите Ctrl+Shift+F еще раз и начать новый поиск.
Чтобы просмотреть список вхождений в отдельном окне инструмента, щелкните Открыть в окне поиска. Используйте это окно и его параметры для группировки результатов, их предварительного просмотра и дальнейшей работы с ними.
Если вы хотите видеть каждый новый результат поиска на отдельной вкладке в окне инструмента «Найти», щелкните в нижней части диалогового окна «Найти в файлах» и установите флажок «Открыть результаты в новой вкладке».
Сузьте область поиска
Вы можете использовать различные параметры в диалоговом окне «Найти в файлах», чтобы настроить процесс поиска.
Выберите такие параметры, как Слова () или Учитывать регистр (), чтобы найти точное слово в проекте или сопоставить регистр букв.
Если выбрано, PhpStorm автоматически экранирует специальные символы регулярных выражений с обратной косой чертой
\
при поиске текстовой строки, которая их содержит.Имейте в виду, что если вы сначала скопируете ( Ctrl+C ) строку, а затем вставите ( Ctrl+V ) в поле поиска символы регулярных выражений учитываться не будут.
Дополнительные сведения о регулярных выражениях см. в документации по поиску по регулярным выражениям.
Щелкните значок, чтобы отфильтровать результаты поиска. Например, вы можете отфильтровать поиск, чтобы пропустить комментарии, или вместо этого искать только в комментариях.
Выберите один из отображаемых параметров, например Модуль или Каталог, чтобы ограничить поиск.
Кроме того, вы можете выбрать параметр «Область», который предлагает вам список предопределенных областей для вашего поиска. Например, вы можете ограничить поиск только открытыми файлами в вашем проекте.
Если вы работаете без вкладок, область недавно просмотренных файлов или недавно измененных файлов может оказаться весьма полезной. Вы также можете создать свою собственную область видимости, щелкнув значок «Обзор» (), чтобы открыть диалоговое окно «Области».
Поиск в определенных типах файлов
Используйте параметр Маска файла, чтобы сузить поиск до определенного типа файлов. Вы можете выбрать существующий тип файла из списка, добавить новый тип файла или добавить дополнительный синтаксис маски файла для поиска типов файлов с определенными шаблонами.
В диалоговом окне «Найти в файлах» установите флажок «Маска файла» и из списка типов файлов выберите нужный.
PhpStorm ограничивает поиск указанным типом.
Если вы не нашли нужный тип файла в списке, введите тип файла в поле Маска файла.
Например, используйте следующий синтаксис для поиска только в файлах уценки: *.md.
Вы можете вручную добавить маску файла в поле поиска. При необходимости укажите несколько типов файлов, разделяя их запятыми.
Чтобы просмотреть результаты предыдущих действий по поиску использований, выберите Правка | Найти | Recent Find Usages в главном меню, а затем выберите запрос об использовании.
Заменить строку поиска в проекте
Нажмите Ctrl+Shift+R , чтобы открыть диалоговое окно «Заменить в пути».