Использование preg_match для поиска группы в строке?

#php #string #preg-match

#php #строка #preg-match

Вопрос:

Я пытаюсь найти специальные символы с такими символами, как <? , <?php или ?> в строке. Приведенный ниже код позволяет найти «php» в строке в любом месте, независимо от того, является ли это PHP , php или phpaPHPa .

 <?php
$searchfor = "php";
$string = "PHP is the web scripting language of choice.";
if (preg_match("/".$searchfor."/i", $string)) {
    echo "A match was found.";
} else {
    echo "A match was not found.";
}
?>
  

Мне нужен аналогичный код, который находит в строке специальные символы, такие как <? , <?php или ?> . Есть предложения?

Ответ №1:

Вы можете использовать тот же код. Просто убедитесь, что специальные символы регулярного выражения экранируются при их использовании в сопоставлении. Вопросительный знак должен быть экранирован, чтобы ваш $searchfor стал <?php

Комментарии:

1. Это было просто! Я просто читал и узнавал о регулярных выражениях. Спасибо за помощь. Теперь я могу закончить создание этой новой функции.

Ответ №2:

Использование strpos (или stripos) будет быстрее, чем использование регулярных выражений…

 if(false === strpos($text, '<?'))
  echo 'Match was not found';
else
  echo 'Match was found';
  

Комментарии:

1. Нет. strpos не находит сгруппированные слова подходящими. халфдан попал в точку.