捕获两个字符串之间的文本

时间:2013-07-23 22:19:50

标签: php string

我正在尝试捕获文本字段中的字符串以及两个其他字符串之间的字符串。

  • 开始字符串:{“website”:“
  • 结束字符串:“,”referrer“:”

完整的字符串看起来像这样:

  • {“website”:“www.Domain.com”,“推荐人”:“邀请加入Google +”}
  • { “网站”: “www.AnotherDomain.com”, “引荐”: “”}
  • 或者也许:
  • { “网站”: “www.about.me/SubDomain”, “引荐”: “”}

我只需要捕获开始和结束字符串之间的所有内容,并尝试使用混合结果的各种字符串方法。

开始和结束字符串将始终相同。

有任何建议......?

2 个答案:

答案 0 :(得分:4)

这称为json数组,它可以在带有json_decode函数的php数组中转换。

$json = '{"website":"www.Domain.com","referrer":"invited on google+"}';
$info_array = json_decode($json, true);
echo $info_array['website'];

你不需要任何preg_match,字符串拆分或其他东西。

演示:http://codepad.org/Mz0iNcGo

答案 1 :(得分:0)

这样的事情应该有用......

<?php
$subject = "{"website":"www.Domain.com","referrer":"invited on google+"}";
$pattern = '/(?<=website":").*(?=","referrer)/';
preg_match($pattern, $subject, $matches);
print_r($matches[0]);
?>

$ matches [0]实际上包含你的字符串。