使用正则表达式/ PHP读取里面的报价

问题描述:

文本我有一个文本标题,上面写着使用正则表达式/ PHP读取里面的报价

This User "The Title Of The Post" 

我只想抢什么引号内,并将其存储在一个变量。我将如何与正则表达式和PHP做到这一点?

http://www.php.net/preg_match

<?php 
$x = 'This User "The Title Of The Post"'; 

preg_match('/".*?"/', $x, $matches); 

print_r($matches); 

/* 
    Output: 
    Array 
    (
     [0] => "The Title Of The Post" 
) 

*/ 
?> 
+0

和我想到的一样。 :-) – 2009-09-02 02:55:01

+0

不全球:, - ( – 2009-09-02 02:55:22

+1

海报要求“只是引号内部的内容”,并且接受的解决方案包含引号,我的解决方案不包括引号作为海报请求 – Asaph 2009-09-03 04:40:09

<?php 

$string = 'This User "The Title Of The Post"'; 

preg_match_all('/"([^"]+)"/', $string, $matches); 

var_dump($matches); 

$string = 'This user "The Title Of The Post"'; 

$its_a_match = preg_match('/"(.+?)"/', $string, $matches); 
$whats_inside_the_quotes = $matches[1]; 

$its_a_match1,如果它做了一个成功的匹配,否则0$whats_inside_the_quotes将包含正则表达式中的一组括号中匹配的字符串。

如果有点不清楚(实际情况),preg_match()实际上给出的值为$matches(第三个参数)。


$str = 'This User "The Title Of The Post"'; 
$matches = array(); 
preg_match('/^[^"]*"([^"]*)"$/', $str, $matches); 
$title = $matches[1]; 
echo $title; // prints The Title Of The Post 
+0

@opello,@Patrick - 你们任何人都可以解释一下这个答案...我还是新手正则表达式,我想做一个类似的任务 - “从site_ids == 34 || sales_region == 45'上读取site_ids =='之后的数字”(即正则表达式应该返回34)。我用'preg_match('/^ [^ site_ids ==] * ||([^ ||] *)“$ /',$ str,$ matches);'在$ str ='site_ids == 34之后''sales_regio n == 45';'而没有得到结果。我不确定'|'是否需要转义。问题中的分隔符是一个双引号('''),而在我的情况下,它们是'site_ids =='和'||'。对我来说什么是正确的正则表达式?谢谢。 – 2011-06-20 13:43:06