Получить текст в кавычках

есть ли какая-то функция, которая может принимать только текст внутри кавычек из переменной?
Как:

$text = 'I am "pro"'; echo just_text_in_quotes($text); 

Я знаю, что этой функции не существует .. но мне нужно что-то подобное. Я думал о fnmatch("*",$text) Но это не может отразить этот текст, это просто для проверки. Не могли бы вы мне помочь? Спасибо.

Эта функция вернет первый согласованный текст между кавычками (возможно, пустую строку).

 function just_text_in_quotes($str) { preg_match('/"(.*?)"/', $str, $matches); return isset($matches[1]) ? $matches[1] : FALSE; } 

Вы можете изменить его, чтобы вернуть массив всех совпадений, но в вашем примере вы используете его в контексте echo возвращаемого значения. Если бы он вернул массив, все, что вы получили, это Array .

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

 function get_delimited($str, $delimiter='"') { $escapedDelimiter = preg_quote($delimiter, '/'); if (preg_match_all('/' . $escapedDelimiter . '(.*?)' . $escapedDelimiter . '/s', $str, $matches)) { return $matches[1]; } } 

Это вернет null если совпадений не найдено.

preg_match сделано для этого

  preg_match('/"(.*?)"/', $str, $quoted_string); echo "<pre>"; print_r($quoted_string); //return array of all quoted words in $str 

Это регулярное выражение:

 "(\w*)" 

поможет вам, как вы можете видеть здесь: http://rubular.com/r/3kgH7NdtLm