使用正则表达式/ PHP读取里面的报价
文本我有一个文本标题,上面写着使用正则表达式/ PHP读取里面的报价
This User "The Title Of The Post"
我只想抢什么引号内,并将其存储在一个变量。我将如何与正则表达式和PHP做到这一点?
<?php
$x = 'This User "The Title Of The Post"';
preg_match('/".*?"/', $x, $matches);
print_r($matches);
/*
Output:
Array
(
[0] => "The Title Of The Post"
)
*/
?>
<?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_match
将1
,如果它做了一个成功的匹配,否则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
@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
和我想到的一样。 :-) – 2009-09-02 02:55:01
不全球:, - ( – 2009-09-02 02:55:22
海报要求“只是引号内部的内容”,并且接受的解决方案包含引号,我的解决方案不包括引号作为海报请求 – Asaph 2009-09-03 04:40:09