获取引号中的文字

时间:2011-12-26 12:14:32

标签: php text quotes

是否有一些函数只能在变量的引号内插入文本?
就像:

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

我知道这个功能不存在..但我需要这样的东西。 我在想fnmatch("*",$text) 但是这个不能回声只是那个文本,它只是为了检查。 你能帮我么? 谢谢。

3 个答案:

答案 0 :(得分:8)

此函数将返回引号之间的第一个匹配文本(可能是空字符串)。

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

答案 1 :(得分:3)

preg_match是为此

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

答案 2 :(得分:1)

这个正则表达式:

"(\w*)"

将为您提供帮助,如您所见:http://rubular.com/r/3kgH7NdtLm