Как выполнить preg_replace (), чтобы удалить что-либо, кроме «Post» или «Posts»?

#php #preg-replace

#php #preg-заменить

Вопрос:

У меня есть строка, которая возвращает различные данные, такие как числа, пробелы и т.д. Все, что я хочу от него, это просто «Post» или «Posts». Может кто-нибудь привести мне пример того, как это сделать на PHP?

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

1. Это может быть проще выполнить, если вы просто выполните поиск наличия «Post» или «Posts», используя stripos вместо preg_replace .

Ответ №1:

Да, используйте preg_match вот так:

 $myData = "There are 15 posts in this forum.";
preg_match("/Posts?/", $myData, $results);
if($results[0][0] === "Posts") {
     // It was "posts"
} else {
     // Assume it was "post"
}
  

Ответ №2:

 $post = preg_replace('/.*(Posts?).*/', '$1', $string);
  

Если вы просто хотите определить, есть ли слово Post в строке, то использование strpos() было бы намного эффективнее.

 if (strpos($string, 'Post') !== FALSE) {
   ... Post  is present ...
}
  

Ответ №3:

если вы проверяете, содержит ли строка слово «Posts», то вы могли бы использовать что-то вроде этого:

 if (preg_match("/Posts/i", $theString)) {
  // do something
}
  

Ответ №4:

Если я правильно это читаю, кажется, что вам не нужна строка Post / Сообщения, только если они существуют. В этом случае самым быстрым способом было бы использовать strpos функцию. Вы могли бы использовать это следующим образом:

 if( strpos($haystack,"Post") !== false ) {
    //You get here if Post or Posts was found.
}