正则表达混乱

时间:2013-04-01 19:34:33

标签: php regex

如果我有这样的字符串"location":"Denton TX"(包括双引号) 我想得到Denton TX。如何为那个东西编写正则表达式?

我试过

function getInfo($info,$content){
    echo 'getting INFO';
    preg_match_all("\.".$info."\.:\"[^\"]*(.*?)\.,",$content,$matches,PREG_PATTERN_ORDER);
    print_r($matches);
    return $matches[0];
}

我将'location'放入$info但不起作用。

3 个答案:

答案 0 :(得分:0)

简单地获取引号之间的每个字符。你太近了。

"\.".$info."\.:\"([^\"]*)\"

答案 1 :(得分:0)

我会这样做:

"\"".$info."\":\"([^\"]+)\""

我不确定你为什么写这个特定的位,但你的正则表达式中的主要问题是[^\"]*,这太贪婪并且会消耗所有东西,并且(.*?)是空的(好吧,除非是以双引号开头,我猜)。我也不太明白为什么你到底是什么逗号,但也许你的例子没有说明...在任何情况下,我提供的正则表达式应该与你的例子匹配,前提是$info包含字符串{ {1}}。

答案 2 :(得分:0)

试试这个:(?< =:“)(。*)(?=”)

我使用类似的方法从Android应用中的XML响应中删除元素标记。祝你好运