使用占位符匹配子字符串

时间:2013-02-28 22:50:36

标签: php substring match

定义
我在PHP string Differences with Dynamic restrictions工作时遇到了这种情况。它可能是更好地理解我想要的东西的参考。

问题
假设我有一个字符串:

  

“这是 {1} 字符串 {2} 占位符”

次要

  

“这是一个非常相似的字符串,占位符数据

问题
我如何为每个占位符获取一个变量,称为$v1$v2$vn,其值为“非常相似”“数据为分别是“?正如您所看到的,我需要为每个占位符分配不在主要字符串中的子字符串。

备注
我正在使用 PHP

2 个答案:

答案 0 :(得分:2)

您应该可以使用正则表达式执行以下操作:

$pattern="/This is a (.*) string with (.*) placeholders/";
$subject="This is a very similar string with data for the placeholders";

preg_match($pattern,$subject,$matches);

$v1=$matches[1];
$v2=$matches[2];

有关php中正则表达式的更多信息,请参阅http://php.net/manual/en/function.preg-match.php

答案 1 :(得分:0)

可能使用sprintf

$string = 'This is a %s string with %s placeholders';
$v1 = 'very similar';
$v2 = 'data for the';

$result = sprintf($string, $v1, $v2);